লিংক উপ-ডোমেন জুড়ে কাজ করে?


10

একটি সাধারণ ল্যান্ডিং পৃষ্ঠা থেকে হেভিওয়েট একক পৃষ্ঠা অ্যাপে ক্লিক করার সময় আমি পারফরম্যান্সের উত্সাহ পেতে এই জাতীয় কিছু ব্যবহার করার চেষ্টা করছি:

<link rel="prefetch" href="https://example.com" as="document" />
<link rel="prefetch" href="https://example.com/app.js" as="script" />
<link rel="prefetch" href="https://example.com/app.css" as="style" />

আমার ল্যান্ডিং পৃষ্ঠাটি সাবডোমেনে থাকা অবস্থায় এটির কোনও উল্লেখযোগ্য পারফরম্যান্সের উত্সাহ নেই। বলুন https://subdomain.example.com,।

আমি যখন দেখার জন্য কোনও লিঙ্কটিতে ক্লিক https://example.comকরি, তখনও আমি ক্রোম নেটওয়ার্ক ট্যাবটিতে লম্বা হিসাবে app.jsএবং app.cssলোড হওয়া দেখতে পাচ্ছি :

প্রিফেটেড রিসোর্স প্রিফেচিংয়ের সাথে রিসোর্স ডাউনলোডের সময়

এখানে প্রিফেচিং অক্ষম করে একই উত্স:

প্রিফেচিং ছাড়াই রিসোর্স ডাউনলোডের সময়

মোট হিসাবে প্রায় একই পরিমাণ সময় লাগে।


প্রিফেচ ক্যাশে লোড হওয়া যে কোনও সম্পদের জন্য শিরোনামগুলির অনুরোধ করুন:

সাধারণ:

Request URL: https://example.com/css/app.bffe365a.css
Request Method: GET
Status Code: 200  (from prefetch cache)
Remote Address: 13.226.219.19:443
Referrer Policy: no-referrer-when-downgrade

প্রতিক্রিয়া:

accept-ranges: bytes
cache-control: max-age=31536000
content-encoding: gzip
content-length: 39682
content-type: text/css
date: Mon, 06 Jan 2020 21:42:53 GMT
etag: "d6f5135674904979a2dfa9dab1d2c440"
last-modified: Mon, 06 Jan 2020 20:46:46 GMT
server: AmazonS3
status: 200
via: 1.1 example.cloudfront.net (CloudFront)
x-amz-cf-id: dO3yiCoPErExrE2BLYbUJaVye32FIJXXxMdI4neDGzGX9a6gcCDumg==
x-amz-cf-pop: LAX50-C1
x-amz-id-2: 1O0LmihxpHIywEaMQWX7G3FDAzxtH9tZq1T/jeVLMzifFSJSIIJSS6+175H61kKdAq6iEbwfs2I=
x-amz-request-id: AF35C178092B65D4
x-cache: Hit from cloudfront

অনুরোধ:

DNT: 1
Referer: https://example.com/auth/join
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36

আমার প্রশ্ন হ'ল: যদি ক্রোম নির্দেশ করে যে প্রিফেচ ক্যাশে ব্যবহার করা হয় তবে তাৎপর্যপূর্ণ ডাউনলোডের সময় কেন আছে?

দেখে মনে হয় যে ক্রোমের বিভিন্ন ধরণের ক্যাশে রয়েছে: প্রিফেচ ক্যাশে, ডিস্ক ক্যাশে এবং মেমরি ক্যাশে। ডিস্ক ক্যাশে এবং মেমোরি ক্যাশে খুব দ্রুত (5 মিমি এবং 0 মিমি লোড সময়)। তবে প্রিফেচ ক্যাশে মাঝে মাঝে 300 মিমি ডাউনলোডের সময় থেকে বেশ বেহুদা। আমি কেন এমনটি হয় তার প্রযুক্তিগত ব্যাখ্যা পেতে পারি? এটি কি ক্রোমের সাথে একটি বাগ? আমি ক্রোমে 79.0.3945.117 এ আছি।


প্রিফেচ ভবিষ্যতের নেভিগেশনের গতি বাড়ানোর জন্য ব্যবহৃত হয়, ( ওয়েব.দেব / লিঙ্ক- প্রিফেট ) থেকে একটি সংক্ষিপ্ত বিবরণ দেখুন
মোহাম্মদ ইয়াসির

হ্যাঁ, প্রিফেচের ভবিষ্যতের নেভিগেশনগুলিকে গতি বাড়ানো উচিত। তাহলে কেন এটি আমার ক্ষেত্রে এটির গতি বাড়েনি? সময় গ্রাফ দেখুন।
মারোস

আপনি কি অন্য ডোমেনে সাবডোমেন সামগ্রীগুলি চেষ্টা করে দেখতে এবং পরীক্ষা করতে পারেন যে এটি একই সময় লোড হতে পারে কিনা? আপনি মনে করেছেন যে সাব-ডোমেনটি (যেমন অন্যান্য ডোমেন) কেস কীভাবে কাজ করে তা না দেখিয়ে সাবডোমেনটি এটি একটি সমস্যা হতে পারে। সাবডোমেনটি যদি কোনও সমস্যা হয় তবে পরবর্তী পদক্ষেপটি অনুসন্ধান করার জন্য ক্রোম কনফিগারেশন সেটিংস আছে কিনা তা আবিষ্কার করতে হবে বা
মার্টিন

অথবা সাবডোমেন এবং / অথবা ইন্ডি ডোমেন উভয়ের জন্য একই লোডিং বারগুলি অন্য ব্রাউজারগুলিতে ফায়ারফক্স ইন্সপেক্টর বা অপেরা হিসাবে একই সরঞ্জামদণ্ড সহ প্রদর্শিত হবে? যদি আপনি একই রেফারিং সমস্যাটি অন্য ব্রাউজারগুলিতে দেখা দেয় যা বিভিন্ন ইঞ্জিন ব্যবহার করে (তবে আমি নিশ্চিত নই যে করণীয় এবং এর আগে আর কিছু করবেন না) তবে এটি একটি বাগ হতে পারে - আমি পুরোপুরি বিশ্বাস করতে পারি যে এটি কোনও ক্রোম বাগ হতে পারে entire যদি এই উল্লিখিত সময়ের মানগুলি অন্যান্য ব্রাউজারগুলিতে লক্ষণীয়ভাবে পৃথক হয়।
মার্টিন

উত্তর:


0

<link rel=prefetch>একটি ওয়েব পৃষ্ঠায় যুক্ত করা ব্রাউজারকে পুরো পৃষ্ঠা বা কিছু সংস্থান (যেমন স্ক্রিপ্ট বা সিএসএস ফাইল) ডাউনলোড করতে বলে, যাতে ভবিষ্যতে ব্যবহারকারীর প্রয়োজন হতে পারে। এটি ফার্স্ট কনটেন্টফুল পেইন্ট এবং টাইম টু ইন্টারেক্টিভের মতো মেট্রিকগুলিতে উন্নতি করতে পারে এবং প্রায়শই পরবর্তী নেভিগেশনগুলি তাত্ক্ষণিকভাবে লোড হওয়ার জন্য তৈরি করতে পারে।

এখানে চিত্র বর্ণনা লিখুন

প্রিফেচ ইঙ্গিতটি তাত্ক্ষণিকভাবে প্রয়োজন হয় না এমন সংস্থাগুলির জন্য অতিরিক্ত বাইট গ্রহণ করে, তাই এই কৌশলটি বিবেচনা করে প্রয়োগ করা প্রয়োজন; কেবলমাত্র প্রিফেচ সংস্থানগুলি যখন আপনি আত্মবিশ্বাসী হন যে ব্যবহারকারীদের তাদের প্রয়োজন হবে। ব্যবহারকারীরা যখন ধীর সংযোগে থাকে তখন প্রিফেচিং না বিবেচনা করুন। আপনি নেটওয়ার্ক তথ্য API দিয়ে এটি সনাক্ত করতে পারেন।

উপসাগরের সাথে কোন লিঙ্কগুলি নির্ধারণের বিভিন্ন উপায় রয়েছে। সহজতমটি হ'ল বর্তমান পৃষ্ঠায় প্রথম লিঙ্ক বা প্রথম কয়েকটি লিঙ্ককে উপস্থাপন করা। এমন আরও গ্রন্থাগার রয়েছে যা আরও পরিশীলিত পন্থা ব্যবহার করে, পরে এই পোস্টে ব্যাখ্যা করা হয়েছে- https://web.dev/link-prefetch/


আমি কেন লিঙ্ক প্রিফেচিং আমার বিশেষ ক্ষেত্রে জিনিসগুলিকে ত্বরান্বিত করছে না তার একটি ব্যাখ্যা পেতে চাইছিলাম। এটি কি সাবডোমেনস, পরিষেবা কর্মী বা অন্য কিছুর কারণে? আপনি যদি আমার স্ক্রিনশটগুলি দেখুন, আপনি দেখতে পাচ্ছেন যে ব্রাউজারটি উপস্থাপনের পরেও সামগ্রীটি পুনরায় ডাউনলোড করে।
মারোস

0

আমি কেবল অনুমান করতে পারি আত্মবিশ্বাসের উত্তর সম্ভবত আপনি কেবল পরীক্ষার মাধ্যমে খুঁজে পেতে পারেন। অ্যাকাউন্টে প্রচুর ভেরিয়েবল রয়েছে। তবে এখানে কিছু ধারণা:

  1. prefetchএকটি ব্রাউজারের জন্য একটি ইঙ্গিত । ব্রাউজার কিছু স্বেচ্ছাচারিত কারণে এটিকে উপেক্ষা করতে পারে। এর চেয়েও এটির সর্বনিম্ন অগ্রাধিকার রয়েছে।
  2. উদাহরণস্বরূপ, দয়া করে আপনার ব্রাউজার সেটিংস পরীক্ষা করুন:
    Menu/Settings/Advanced/Privacy and security/Preload pages for faster browsing and searching
    (বা এর মতো কিছু)।
  3. যদি কোনও সুযোগে আপনি মোবাইল ইন্টারনেট ব্যবহার করছেন তবে এটিও সমস্যা হতে পারে।
    https://www.technipages.com/google-chrome-prefetch
  4. আপনি আপনার অবতরণ পৃষ্ঠা থেকে কত দ্রুত নেভিগেট করবেন example.com?
  5. আপনার সার্ভার লগগুলি কখনও prefetchঅনুরোধগুলি গ্রহণ করে কিনা তা পরীক্ষা করে দেখুন ।
  6. prefetchঅনুরোধের প্রতিক্রিয়াতে আপনার সার্ভারটি কিছু অদ্ভুত শিরোনাম সেট করে কিনা তা পরীক্ষা করে দেখুন । যেমন Cache-Control: no-cache। হ্যাঁ, আমি দেখতে পাচ্ছি যে আপনার আছে cache-control: max-age=31536000, তাই এটি সত্যিই আশ্চর্যজনক হবে, যদি সার্ভার একই অনুরোধের জন্য বিভিন্ন শিরোনাম প্রেরণ করে (ভাল ... প্রায় একই , কমপক্ষে আপনি বলেন নি যে তারা আছেন, এবং অন্তত সেখানে থাকতে পারে) এটি একটি prefetchঅনুরোধ হিসাবে ইঙ্গিত করে যে কিছু শিরোনাম হোন ) তবে অদ্ভুত জিনিস ঘটে।

  7. আপনার সম্ভবত crossoriginবৈশিষ্ট্য যুক্ত করার চেষ্টা করা উচিত । যেমন

    <link rel="prefetch" href="https://example.com/app.css" as="style" crossorigin />

    এখানে https://www.w3.org/TR/resource-hints/ আপনি এই উদাহরণটি খুঁজে পেতে পারেন

    <link rel="preconnect" href="//example.com">
    <link rel="preconnect" href="//cdn.example.com" crossorigin>
    

    আপনার ক্ষেত্রে যথেষ্ট প্রাসঙ্গিক, কিন্তু দুর্ভাগ্যক্রমে কোন ব্যাখ্যা ছাড়াই।

  8. আপনার প্রশ্নের মূল সংস্করণে আপনি পরিষেবা কর্মীদের উল্লেখ করেছেন ... তারা যদি কিছু ডাউনলোড করে, বা নিজে নিজে নিজে কিছু ডাউনলোড করে দেয় তবে এটিও সমস্যা হতে পারে। কারণ সর্বনিম্ন অগ্রাধিকারprefetch

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Link_prefetching_FAQ#What_if_I.27m_downloading_something_in_the_background.3F_Will_link_prefetching_compete_for_bandwidth.3F

    আপনি যদি মজিলা ব্যবহার করে কিছু ডাউনলোড করছেন তবে কোনও ব্যাকগ্রাউন্ড ডাউনলোড শেষ না হওয়া অবধি লিঙ্ক প্রিফেচিং বিলম্বিত হবে

    আমার মনে হয় ক্রোমের ক্ষেত্রেও এটি একই রকম হয়।

  9. আপনি কি আপনার ল্যান্ডিং পৃষ্ঠাটি রুট ডোমেনে স্থানান্তরিত করার চেষ্টা করেছেন? যদি, হ্যাঁ, এবং prefetchপ্রত্যাশা অনুযায়ী কাজ করে, তবে হ্যাঁ - সাবডোমেনই ইস্যুর কারণ। এবং জিইউআই বার্তা Status Code: 200 (from prefetch cache)সম্ভবত একটি বিভ্রান্তি। কারণ সম্প্রতি কিছু কিছু prefetchক্রোমের আচরণে পরিবর্তন আসতে শুরু করেছে । এবং জিনিসগুলি স্থির হয়ে গেছে কিনা তা আমি এখনও জানি না। মূলত, হ্যাঁ, একটি নির্দিষ্ট সম্ভাবনা রয়েছে যা আপনি prefetchকেবল একই উত্স থেকে করতে পারেন ।

    https://docs.google.com/document/d/1bKGDIePAuF6YXmmrwM33LeLvtuCsla3vTspsxsNp-f8/edit


আপনার উত্তর পড়ার পরে কিছু এলোমেলো নোট: আমি ল্যান্ডিং পৃষ্ঠা থেকে উদাহরণ ডটকম এ খুব ধীরে ধীরে নেভিগেট করি, যা সমস্ত সংস্থান লোড করার জন্য পর্যাপ্ত সময় দেয়। আমি ক্রোমে অক্ষম পরিষেবা কর্মীদের সাথে উপরের পরীক্ষাটি করেছিলাম। আমি মনে করি ক্রসরিগিন বৈশিষ্ট্যটি অন্য কোনও কিছুর জন্য। আমি এটি ব্যবহার করার চেষ্টা করেছি এবং কোনও ভাগ্য নেই। সবচেয়ে খারাপ কেস, আমি ল্যান্ডিং পৃষ্ঠাটিকে রুট ডোমেনে স্থানান্তরিত করে আপনার প্রস্তাবিত পরীক্ষারটি করব। আমি এখানে একটি উত্তর আমার কাজ বাঁচাতে হবে আশা ছিল।
মারোস

1
আপনি এফএফ চেষ্টা করেছেন? উপরের এমডিএন লিংক থেকে: "মজিলা কি অন্য কোনও হোস্টের প্রিফেটচ নথিগুলি দেবে? হ্যাঁ। লিঙ্ক প্রিফেচিংয়ের জন্য একই-উত্সের কোনও নিষেধাজ্ঞা নেই। একই সার্ভারের কেবলমাত্র ইউআরএলগুলিতে প্রিফেচিংকে সীমাবদ্ধ করা কোনও বাড়ানো ব্রাউজার সুরক্ষা সরবরাহ করবে না।" এই উত্তরণটি পুরানো হতে পারে, তবে এখনও। তারা ক্রোমের সাথে তাদের আচরণে পৃথক কিনা তা জানা ভাল হবে।
x00

আমি চেষ্টা করেছি কিন্তু আমি পরিষেবা কর্মীদের অক্ষম করতে সক্ষম হইনি যা মনে হয় প্রিফেক ক্যাশে অগ্রাধিকার গ্রহণ করছে। যদিও আমি এটি আবার চেষ্টা করতে পারি।
মারোস

@ মারোস, কোনওভাবে আপনি কোডটির মালিক নন, না কোনও প্রযুক্তিগত সমস্যা আছে?
x00

-1

আপনি যদি সাবডোমেন অনতে থাকেন এবং আপনি ডোমেন থেকে সংস্থান চান সে ক্ষেত্রে আপনার কোড নীচে যুক্ত করা উচিত

<link rel="preconnect" href="https://example.com">
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.