একটি ওয়েব পৃষ্ঠার লোড এবং কার্যকরকরণের ক্রম?


244

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

একটি নমুনা পৃষ্ঠাটি এরকম:

<html>
 <head>
  <script src="jquery.js" type="text/javascript"></script>
  <script src="abc.js" type="text/javascript">
  </script>
  <link rel="stylesheets" type="text/css" href="abc.css"></link>
  <style>h2{font-wight:bold;}</style>
  <script>
  $(document).ready(function(){
     $("#img").attr("src", "kkk.png");
  });
 </script>
 </head>
 <body>
    <img id="img" src="abc.jpg" style="width:400px;height:300px;"/>
    <script src="kkk.js" type="text/javascript"></script>
 </body>
</html>

সুতরাং এখানে আমার প্রশ্নগুলি:

  1. এই পৃষ্ঠাটি কীভাবে লোড হয়?
  2. লোডিংয়ের ক্রম কী?
  3. জেএস কোডটি কখন কার্যকর করা হয়? (ইনলাইন এবং বাহ্যিক)
  4. সিএসএস কখন কার্যকর করা হয় (প্রয়োগ করা হয়)?
  5. কখন $ (দস্তাবেজ)। কার্যকর করা হয়?
  6. Abc.jpg ডাউনলোড করা হবে? অথবা এটি কেবল kkk.png ডাউনলোড করে?

আমি নিম্নলিখিত বোঝার আছে:

  1. ব্রাউজারটি প্রথমে এইচটিএমএল (ডিওএম) লোড করে।
  2. ব্রাউজারটি বাহ্যিক সংস্থানগুলি উপর থেকে নীচে, রেখার মাধ্যমে লাইন শুরু করে।
  3. যদি <script>কোনওটি পূরণ হয়, লোডিংটি ব্লক হয়ে যাবে এবং জেএস ফাইলটি লোড এবং সম্পাদিত হওয়া অবধি অপেক্ষা করুন এবং তারপরে চালিয়ে যান।
  4. অন্যান্য সংস্থান (সিএসএস / চিত্র) সমান্তরালে লোড হয় এবং প্রয়োজনে কার্যকর করা হয় (সিএসএসের মতো)।

নাকি এটি এর মতো:

ব্রাউজারটি এইচটিএমএল (ডিওএম) পার্স করে এবং একটি অ্যারে বা স্ট্যাকের মতো কাঠামোতে বাহ্যিক সংস্থান পায়। এইচটিএমএল লোড হওয়ার পরে, ব্রাউজারটি কাঠামোর বাহ্যিক সংস্থানগুলিকে সমান্তরালভাবে লোড করা শুরু করে এবং সমস্ত সংস্থান লোড না করা পর্যন্ত কার্যকর করা হয়। তারপরে জেএস এর উপর নির্ভর করে ব্যবহারকারীর আচরণের সাথে মিল রেখে ডোম পরিবর্তন করা হবে।

আপনি যখন কোনও এইচটিএমএল পৃষ্ঠার প্রতিক্রিয়া পেয়েছেন তখন কী ঘটে যায় সে সম্পর্কে কেউ কি বিশদ ব্যাখ্যা দিতে পারেন? এটি কি বিভিন্ন ব্রাউজারে পরিবর্তিত হয়? এই প্রশ্ন সম্পর্কে কোন রেফারেন্স?

ধন্যবাদ।

সম্পাদনা করুন:

ফায়ারবগের সাথে ফায়ারফক্সে একটি পরীক্ষা করেছি। এবং এটি নিম্নলিখিত চিত্র হিসাবে দেখায়: বিকল্প পাঠ


11
স্টিভ সোডার্স এই ক্ষেত্রে দুর্দান্ত কাজ করেছেন। স্টিভ + সাউডার + উচ্চ + পারফরম্যান্সের জন্য গুগল এবং একবার দেখুন।
anddoutoi

3
আমি পারফরম্যান্স টিউনিং বলতে চাই না। আমি বিস্তারিত জানতে চাই
ঝু টাও

2
তাঁর রচনাটি পড়ার মাধ্যমে "কীভাবে" এটি বিশদে বিশদভাবে কাজ করে তা সম্পর্কে আমার বোঝার পরিমাণ দশগুণ বেড়েছে যাতে এটি এখনও একটি বৈধ মন্তব্য। আমি কপিরাইট দ্বারা তার পুরো বই এখানে উদ্ধৃত করার অনুমতি নেই তাই আমি এখনও আপনাকে তার কাজ সন্ধান করার পরামর্শ দিচ্ছি।
anddoutoi

3
অর্ডার জিনিসগুলি ঘটে যাওয়ার একটি দুর্দান্ত বর্ণনা এখানে রয়েছে
জেরাত

উত্তর:


277

আপনার নমুনা অনুযায়ী,

<html>
 <head>
  <script src="jquery.js" type="text/javascript"></script>
  <script src="abc.js" type="text/javascript">
  </script>
  <link rel="stylesheets" type="text/css" href="abc.css"></link>
  <style>h2{font-wight:bold;}</style>
  <script>
  $(document).ready(function(){
     $("#img").attr("src", "kkk.png");
  });
 </script>
 </head>
 <body>
    <img id="img" src="abc.jpg" style="width:400px;height:300px;"/>
    <script src="kkk.js" type="text/javascript"></script>
 </body>
</html>

মোটামুটিভাবে মৃত্যুদন্ড কার্যকর করা প্রবাহ:

  1. এইচটিএমএল ডকুমেন্টটি ডাউনলোড হয়ে যায়
  2. এইচটিএমএল ডকুমেন্টের বিশ্লেষণ শুরু হয়
  3. এইচটিএমএল পার্সিং পৌঁছেছে <script src="jquery.js" ...
  4. jquery.js ডাউনলোড এবং বিশ্লেষণ করা হয়
  5. এইচটিএমএল পার্সিং পৌঁছেছে <script src="abc.js" ...
  6. abc.js ডাউনলোড, পার্সড এবং চালিত হয়
  7. এইচটিএমএল পার্সিং পৌঁছেছে <link href="abc.css" ...
  8. abc.css ডাউনলোড এবং বিশ্লেষণ করা হয়
  9. এইচটিএমএল পার্সিং পৌঁছেছে <style>...</style>
  10. অভ্যন্তরীণ সিএসএসের বিধিগুলি পার্স এবং সংজ্ঞাযুক্ত
  11. এইচটিএমএল পার্সিং পৌঁছেছে <script>...</script>
  12. অভ্যন্তরীণ জাভাস্ক্রিপ্ট পার্স করে চালিত হয়
  13. এইচটিএমএল পার্সিং পৌঁছেছে <img src="abc.jpg" ...
  14. abc.jpg ডাউনলোড এবং প্রদর্শিত হয়
  15. এইচটিএমএল পার্সিং পৌঁছেছে <script src="kkk.js" ...
  16. kkk.js ডাউনলোড, পার্সড এবং চালিত হয়
  17. এইচটিএমএল ডকুমেন্টের পার্সিং শেষ হয়

নোট করুন যে ডাউনলোডটি ব্রাউজারের আচরণের কারণে অ্যাসিনক্রোনাস এবং অ-ব্লকিং হতে পারে। উদাহরণস্বরূপ, ফায়ারফক্সে এই সেটিংটি রয়েছে যা প্রতি ডোমেনে এক সাথে অনুরোধের সংখ্যা সীমিত করে।

উপাদানটি ইতিমধ্যে ক্যাশে হয়েছে কিনা তার উপরও নির্ভর করে, অদূর ভবিষ্যতে অনুরোধে উপাদানটি পুনরায় অনুরোধ করা যাবে না। যদি উপাদানটি ক্যাশে করা থাকে তবে প্রকৃত URL এর পরিবর্তে উপাদানটি ক্যাশে থেকে লোড করা হবে।

পার্সিং শেষ হয়ে গেলে এবং দস্তাবেজ প্রস্তুত এবং লোড করা হয়, ইভেন্টগুলি onloadবরখাস্ত করা হয়। সুতরাং যখন onloadবরখাস্ত করা হয়, $("#img").attr("src","kkk.png");চালানো হয়। তাই:

  1. দস্তাবেজ প্রস্তুত, অনলোড বহিস্কার করা হয়েছে।
  2. জাভাস্ক্রিপ্ট কার্যকর কার্যকর $("#img").attr("src", "kkk.png");
  3. kkk.png ডাউনলোড এবং লোড হয় #img

$(document).ready()ঘটনা আসলে ঘটনা বহিস্কার যখন সমস্ত পৃষ্ঠা উপাদান লোড এবং প্রস্তুত করা হয়। এটি সম্পর্কে আরও পড়ুন: http://docs.jquery.com/ টিউটোরিয়ালস : পরিচয়_কেন্দ্র (দস্তাবেজ)। প্রস্তুত ()

সম্পাদনা করুন - এই অংশটি সমান্তরাল বা না অংশের উপর আরও বিস্তৃত:

ডিফল্টরূপে এবং আমার বর্তমান উপলব্ধি থেকে ব্রাউজারটি প্রতিটি পৃষ্ঠাকে সাধারণত 3 উপায়ে চালায়: HTML পার্সার, জাভাস্ক্রিপ্ট / ডিওএম এবং সিএসএস।

এইচটিএমএল পার্সার মার্কআপ ল্যাঙ্গুয়েজ পার্সিং এবং ব্যাখ্যার জন্য দায়ী এবং সুতরাং অন্য 2 টি উপাদানকে কল করতে সক্ষম হতে হবে।

উদাহরণস্বরূপ, যখন পার্সারটি এই লাইনটি জুড়ে আসে:

<a href="#" onclick="alert('test');return false;" style="font-weight:bold">a hypertext link</a>

পার্সার 3 টি কল করবে, দুটি জাভাস্ক্রিপ্টে এবং একটি সিএসএসে করবে। প্রথমত, পার্সার এই উপাদানটি তৈরি করে এবং এটি ডিওএম নেমস্পেসে এই উপাদানটির সাথে সম্পর্কিত সমস্ত বৈশিষ্ট্যের সাথে নিবন্ধভুক্ত করবে। দ্বিতীয়ত, পার্সারটি অনক্লিক ইভেন্টটিকে এই নির্দিষ্ট উপাদানের সাথে আবদ্ধ করার জন্য কল করবে। শেষ অবধি, এই নির্দিষ্ট উপাদানটিতে সিএসএস স্টাইল প্রয়োগ করতে এটি সিএসএস থ্রেডে আরেকটি কল করবে।

এক্সিকিউশনটি শীর্ষে এবং একক থ্রেডযুক্ত। জাভাস্ক্রিপ্টটি বহু-থ্রেডযুক্ত দেখতে পারে তবে সত্য যে জাভাস্ক্রিপ্ট একক থ্রেডযুক্ত। এ কারণেই বাহ্যিক জাভাস্ক্রিপ্ট ফাইলটি লোড করার সময়, মূল HTML পৃষ্ঠার পার্সিং স্থগিত করা হয়।

যাইহোক, সিএসএস ফাইলগুলি একই সাথে ডাউনলোড করা যায় কারণ সিএসএস বিধি সর্বদা প্রয়োগ করা হয় - এর অর্থ উপাদানগুলি সর্বদা সর্বাধিক সিএসএস বিধি সংজ্ঞায়িত করা হয় - এটি এটিকে অবরুদ্ধ করে তোলে।

কোনও উপাদান পার্স করার পরে কেবল ডিওএম এ পাওয়া যাবে। সুতরাং কোনও নির্দিষ্ট উপাদানের সাথে কাজ করার সময়, স্ক্রিপ্টটি সর্বদা পরে বা উইন্ডোতে চালিত ইভেন্টের মধ্যে রাখা হয়।

এই জাতীয় স্ক্রিপ্ট ত্রুটি ঘটায় (jQuery এ):

<script type="text/javascript">/* <![CDATA[ */
  alert($("#mydiv").html());
/* ]]> */</script>
<div id="mydiv">Hello World</div>

কারণ যখন স্ক্রিপ্টটি বিশ্লেষণ করা #mydivহয় তখনও উপাদানটি সংজ্ঞায়িত হয় না। পরিবর্তে এটি কাজ করবে:

<div id="mydiv">Hello World</div>
<script type="text/javascript">/* <![CDATA[ */
  alert($("#mydiv").html());
/* ]]> */</script>

অথবা

<script type="text/javascript">/* <![CDATA[ */
  $(window).ready(function(){
                    alert($("#mydiv").html());
                  });
/* ]]> */</script>
<div id="mydiv">Hello World</div>

4
ধন্যবাদ। তবে আপনি উল্লেখ করেছেন যে ডাউনলোডটি ব্রাউজারের আচরণের কারণে অ্যাসিনক্রোনাস এবং অ-ব্লকিং হতে পারে , সুতরাং অ্যাসিনে কোন ধরণের উপাদানগুলি ডাউনলোড করা যেতে পারে (উদাহরণস্বরূপ এফএফ নিন)? <script>অন্য উপাদানগুলি অবরুদ্ধ করবে, তাই না? প্রতিটি ব্রাউজারে অনুমান সম্পর্কে কোনও রেফারেন্স?
ঝু টাও

4
$ (ডকুমেন্ট) .ready () বহিস্কার করা হয় যখন করে DOM সম্পূর্ণ হলে, যখন সব পৃষ্ঠা উপাদান লোড করা হয়
পিয়ের

2
@ পেয়ারের পৃষ্ঠাগুলি দ্বারা আমি ডমকে বোঝাতে চাইছি -> ডোমে যে উপাদান রয়েছে।
মৌরি

3
কেবল স্পষ্ট করার জন্য ... নিয়মিত উইন্ডো.অনলোড # 17 এর পরে ঘটে ... তাই কোন # এ jquery এর document (নথি)? প্রস্তুতি () এর কোড চালায়? # 12? কিন্তু ডম নিজেই # 1 এ লোড হয়েছে?
আর্মিফদা 12 এমএনকিজ 27'13

1
<body> ট্যাবে যদি আমরা <img এর চেয়ে <im href = "bootstrap.min.css" rel = "স্টাইলশিট" /> যোগ করি তবে img এর চেয়ে <script> ট্যাগ প্রদর্শিত হয় না ততক্ষণ বুটস্রেপ ডাউনলোড হয় না ... সুতরাং আমি মনে করি পদক্ষেপ [13], [14] সংশোধন প্রয়োজন ... কেউ কি সেই আচরণটি ব্যাখ্যা করতে পারেন?
ভুবন

34

1) এইচটিএমএল ডাউনলোড করা হয়।

2) এইচটিএমএলকে প্রগতিশীলভাবে পার্স করা হয়েছে। কোনও সম্পত্তির জন্য একটি অনুরোধ পৌঁছে গেলে ব্রাউজারটি সম্পদটি ডাউনলোড করার চেষ্টা করবে। বেশিরভাগ এইচটিটিপি সার্ভার এবং বেশিরভাগ ব্রাউজারের জন্য একটি ডিফল্ট কনফিগারেশন হল সমান্তরালে মাত্র দুটি অনুরোধ প্রক্রিয়া করা। সমান্তরালভাবে সীমাহীন সংখ্যক সম্পদ ডাউনলোড করতে আইই পুনরায় কনফিগার করা যেতে পারে। স্টিভ সৌডারস IE এর সমান্তরালভাবে 100 টিরও বেশি অনুরোধগুলি ডাউনলোড করতে সক্ষম হয়েছেন। ব্যতিক্রম হ'ল আইপি তে স্ক্রিপ্ট অনুরূপ সমান্তরাল সম্পদ অনুরোধগুলি রোধ করে। এ কারণেই বাহ্যিক জাভাস্ক্রিপ্ট ফাইলগুলিতে সমস্ত জাভাস্ক্রিপ্ট স্থাপন এবং এইচটিএমএলটিতে ক্লোজিং বডি ট্যাগের ঠিক আগে অনুরোধটি রাখার পরামর্শ দেওয়া হচ্ছে।

3) এইচটিএমএল পার্স করা হয়ে গেলে ডোম রেন্ডার হয়। সিএসএস প্রায় সমস্ত ব্যবহারকারীর এজেন্টে ডিওএম রেন্ডারিংয়ের সমান্তরালে রেন্ডার করা হয়। ফলস্বরূপ, ডকুমেন্টের <head> </head> বিভাগে যতটা সম্ভব উচ্চতর অনুরোধ করা সমস্ত বাহ্যিক সিএসএস ফাইলগুলিতে সিএসএস কোড রাখার জন্য দৃ strongly়ভাবে সুপারিশ করা হয়। অন্যথায় পৃষ্ঠাটি ডিওমে সিএসএস অনুরোধ অবস্থানের উপস্থিতি পর্যন্ত রেন্ডার করা হয় এবং তারপরে উপরে থেকে রেন্ডারিং শুরু হয়।

4) কেবলমাত্র ডম সম্পূর্ণরূপে রেন্ডার হয়ে যাওয়ার পরে এবং পৃষ্ঠার সমস্ত সম্পত্তির জন্য অনুরোধগুলি সমাধান করা হয় বা সময় শেষ হওয়ার পরে জাভাস্ক্রিপ্ট অনলোড ইভেন্ট থেকে কার্যকর হয়। আই 7, এবং আমি আই 8 সম্পর্কে নিশ্চিত নই, সম্পত্তির অনুরোধ থেকে কোনও এইচটিটিপি প্রতিক্রিয়া না পাওয়া গেলে দ্রুত সম্পদের সময় নির্ধারণ করে না। এর অর্থ জাভাস্ক্রিপ্ট দ্বারা পৃষ্ঠায় ইনলাইন দ্বারা অনুরোধ করা একটি সম্পদ, যা কোনও ফাংশনে অন্তর্ভুক্ত নয় এমন এইচটিএমএল ট্যাগগুলিতে লিখিত জাভাস্ক্রিপ্ট, কয়েক ঘন্টা ধরে লোড ইভেন্টের কার্যকারিতা রোধ করতে পারে। এই সমস্যাটির সূত্রপাত ঘটতে পারে যদি পৃষ্ঠাটিতে এই জাতীয় ইনলাইন কোড বিদ্যমান থাকে এবং কোনও নামক স্থানের সংঘর্ষের কারণে একটি কোড ক্র্যাশের কারণ হয়ে কার্যকর করতে ব্যর্থ হয়।

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

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


2
সিএসএসের নির্দেশাবলীকে সবচেয়ে কম সম্ভাব্য উপাদানের রেফারেন্সগুলিতে একীভূত করা অদ্ভুত শোনায়। যদি আমাকে তিনটি উপাদানের স্টাইল করতে হয় তবে আমার ঠিক তিনটি উপাদান উল্লেখ করতে হবে। আমি একজনকে স্টাইল টেনের সাথে উল্লেখ করতে পারি না, পারি? বা এটিকে বিশদভাবে বর্ণনা করুন
গ্রিন

12

ফায়ারফক্সে আপনার পৃষ্ঠাটি খুলুন এবং HTTPFox অ্যাডন পান on এটি আপনার যা প্রয়োজন তা আপনাকে জানাবে।

এটি আর্কাইভিস্ট.কুইন্টোতে পাওয়া গেছে:

http://archivist.incutio.com/viewlist/css-discuss/76444

আপনি যখন প্রথম কোনও পৃষ্ঠার অনুরোধ করবেন তখন আপনার ব্রাউজার সার্ভারে একটি জিইটি অনুরোধ প্রেরণ করে, যা ব্রাউজারে এইচটিএমএল ফিরিয়ে দেয়। তারপরে ব্রাউজারটি পৃষ্ঠাটি বিশ্লেষণ শুরু করে (সম্ভবত এটির সমস্ত ফেরৎ দেওয়ার আগে)।

যখন এটি কোনও বাহ্যিক সত্তার যেমন একটি সিএসএস ফাইল, একটি চিত্র ফাইল, একটি স্ক্রিপ্ট ফাইল, একটি ফ্ল্যাশ ফাইল বা পৃষ্ঠার বাইরের যে কোনও কিছুর (একই সার্ভার / ডোমেনে বা না হয়) কোনও রেফারেন্স খুঁজে পায়, তখন এটি তৈরির জন্য প্রস্তুত হয় এই সংস্থানটির জন্য আরও একটি GET অনুরোধ।

তবে এইচটিটিপি স্ট্যান্ডার্ড নির্দিষ্ট করে যে ব্রাউজারটি একই ডোমেনে দু'বারের বেশি একযোগে অনুরোধ করা উচিত নয়। সুতরাং এটি প্রতিটি অনুরোধটিকে একটি নির্দিষ্ট ডোমেনে একটি কাতারে রাখে এবং প্রতিটি সত্তা ফেরত আসার সাথে সাথে এটি সেই ডোমেনের জন্য সারিতে পরেরটি শুরু করে।

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

  1. স্ক্রিপ্ট 1 এবং স্ক্রিপ্ট 2 পান; স্ক্রিপ্ট 3 এবং চিত্রসমূহ 1-5-এর জন্য সারি অনুরোধ।
  2. স্ক্রিপ্ট 2 আসবে (এটি স্ক্রিপ্ট 1 এর চেয়ে ছোট): স্ক্রিপ্ট 3 পান, ইমেজ 1-5 করুন।
  3. স্ক্রিপ্ট 1 উপস্থিত; চিত্র 1 পান, সারির চিত্র 2-5।
  4. ইমেজ 1 আসবে, জিইটি ইমেজ 2, ক্যু ইমেজ 3-5।
  5. কোনও নেটওয়ার্ক সমস্যার কারণে স্ক্রিপ্ট 3 আসতে ব্যর্থ হয়েছে - আবার স্ক্রিপ্ট 3 পান (স্বয়ংক্রিয় পুনরায় চেষ্টা করুন)।
  6. চিত্র 2 এসেছে, স্ক্রিপ্ট 3 এখনও এখানে নেই; চিত্র 3 পান, সারির চিত্র 4-5।
  7. চিত্র 3 উপস্থিত; এখনও ইমেজ 4, ক্যু ইমেজ 5, স্ক্রিপ্ট 3 পান।
  8. ইমেজ 4 আসবে, জিইটি ইমেজ 5;
  9. চিত্র 5 উপস্থিত।
  10. স্ক্রিপ্ট 3 আসে।

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

এছাড়াও, ব্রাউজারের অভ্যন্তরীণ সারিটি সত্ত্বাগুলি পৃষ্ঠায় প্রদর্শিত ক্রম অনুযায়ী এটি আনতে পারে না - এটি কোনও মানক দ্বারা প্রয়োজনীয় নয়।

(ওহ, এবং ব্রাউজারে এবং আইএসপিগুলি নেটওয়ার্কের বোঝা কমিয়ে আনার জন্য ব্যবহৃত ক্যাশে প্রক্সিতে উভয়ই ক্যাচিং ভুলে যাবেন না))


6

আপনি যদি আপনার ওয়েবসাইটটি দ্রুত করতে চান বলে আপনি যদি এটি জিজ্ঞাসা করছেন তবে আপনার ওয়েবসাইটটির গতি বাড়ানোর সেরা অভ্যাসগুলিতে ইয়াহুর পৃষ্ঠাটি দেখুন । এটি আপনার ওয়েব সাইটের গতি বাড়ানোর জন্য প্রচুর সেরা অনুশীলন রয়েছে।


2

আফাইক, ব্রাউজার (অন্তত ফায়ারফক্স) প্রতিটি সংস্থান পার্স করার সাথে সাথে অনুরোধ করে। যদি এটি কোনও ইমিগ ট্যাগের মুখোমুখি হয় তবে এটি ইমগ ট্যাগটি পার্স হওয়ার সাথে সাথেই সেই চিত্রটির জন্য অনুরোধ করবে। এটি HTML ডকুমেন্টের সম্পূর্ণতা পাওয়ার আগেই হতে পারে ... এটি তখনও এটি HTML ডকুমেন্টটি ডাউনলোড করা হতে পারে।

ফায়ারফক্সের জন্য, ব্রাউজার সারি রয়েছে যা সেগুলি: কনফিগে কীভাবে সেট করা আছে তার উপর নির্ভর করে প্রযোজ্য। উদাহরণস্বরূপ, এটি একই সার্ভার থেকে একবারে আরও 8 টি ফাইল ডাউনলোড করার চেষ্টা করবে না ... অতিরিক্ত অনুরোধগুলি সারিবদ্ধ করা হবে। আমি মনে করি প্রতি-ডোমেন সীমা, প্রতি প্রক্সি সীমা, এবং অন্যান্য স্টাফ রয়েছে, যা মজিলা ওয়েবসাইটে নথিভুক্ত এবং প্রায়: কনফিগে সেট করা যেতে পারে। আমি কোথাও পড়েছি যে IE এর কোন সীমা নেই।

মূল এইচটিএমএল ডকুমেন্টটি ডাউনলোড হয়ে যাওয়ার সাথে সাথে এটি ডমকে বিশ্লেষণ করার সাথে সাথে jQuery প্রস্তুত ইভেন্টটি বরখাস্ত করা হবে । তারপরে লোড ইভেন্টটি সমস্ত সংযুক্ত সংস্থানসমূহ (সিএসএস, চিত্রগুলি, ইত্যাদি) ডাউনলোড করার পাশাপাশি পাশাপাশি বিশ্লেষণ করা হয়। এটি jQuery ডকুমেন্টেশনে পরিষ্কার করা হয়েছে।

যদি আপনি যে ক্রমটিতে লোড হয় সেটিকে নিয়ন্ত্রণ করতে চান তবে আমি বিশ্বাস করি এটি করার সবচেয়ে নির্ভরযোগ্য উপায় জাভাস্ক্রিপ্টের মাধ্যমে।



1

নির্বাচিত উত্তরটি দেখে মনে হচ্ছে আধুনিক ব্রাউজারগুলিতে কমপক্ষে ফায়ারফক্স on২ এ প্রযোজ্য নয় observed আমি যা দেখেছি তা হল যে এইচটিএমএল পার্সারের উপাদান পৌঁছানোর আগে সিএসএস, জাভাস্ক্রিপ্টের মতো লোডিং রিসোর্সের অনুরোধ জারি করা হয়েছে, উদাহরণস্বরূপ

<html>
  <head>
    <!-- prints the date before parsing and blocks HTMP parsering -->
    <script>
      console.log("start: " + (new Date()).toISOString());
      for(var i=0; i<1000000000; i++) {};
    </script>

    <script src="jquery.js" type="text/javascript"></script>
    <script src="abc.js" type="text/javascript"></script>
    <link rel="stylesheets" type="text/css" href="abc.css"></link>
    <style>h2{font-wight:bold;}</style>
    <script>
      $(document).ready(function(){
      $("#img").attr("src", "kkk.png");
     });
   </script>
 </head>
 <body>
   <img id="img" src="abc.jpg" style="width:400px;height:300px;"/>
   <script src="kkk.js" type="text/javascript"></script>
   </body>
</html>

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.