বাহ্যিক জাভাস্ক্রিপ্ট ইনলাইন বনাম কখন ব্যবহার করা উচিত?


129

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

এর জন্য সাধারণ অনুশীলন কী?

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

  • এই স্ক্রিপ্টটি ইনলাইন কনফিগার করে এমন কোডের বিটগুলি লিখবেন?
  • এই সমস্ত এইচটিএমএল পৃষ্ঠাগুলির মধ্যে ভাগ করা একটি ফাইলের মধ্যে সমস্ত বিট অন্তর্ভুক্ত করবেন?
  • পৃথক বাহ্যিক ফাইলের প্রতিটি বিট অন্তর্ভুক্ত করবেন, প্রতিটি এইচটিএমএল পৃষ্ঠার জন্য একটি?

ধন্যবাদ।

উত্তর:


114

এই উত্তরটি মূলত পোস্ট করা হয়েছিল (২০০৮), নিয়মটি ছিল সহজ: সমস্ত স্ক্রিপ্টটি বাহ্যিক হওয়া উচিত। রক্ষণাবেক্ষণ এবং অভিনয় উভয় জন্য।

(কেন পারফরম্যান্স? কারণ কোডটি পৃথক হলে ব্রাউজারগুলির দ্বারা এটি আরও সহজে ক্যাশে করা যায়))

জাভাস্ক্রিপ্ট HTML কোডের অন্তর্ভুক্ত নয় এবং এতে যদি বিশেষ অক্ষর থাকে (যেমন <, >) এটি এমনকি সমস্যা তৈরি করে।

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


6
@ নিক: বেশিরভাগ সমস্যা কাটিয়ে উঠতে পারে। যদিও প্রথমে এগুলি উত্পন্ন না করা ভাল।
কনরাড রুডল্ফ

17
ইনলাইন করার সময় কখনও কখনও আপনি আরও ভাল পারফরম্যান্স পান। উৎস তাকান google.com । তারা জানে যে তারা কী করছে।
কলম্ব

13
@ ক্যালাম গুগলের 99.999999% ওয়েবসাইটের থেকে আলাদা ব্যবহারের ক্ষেত্রে রয়েছে। অবশ্যই তারা অত্যন্ত সাবধানে এবং এমনকি ক্ষুদ্রতম পার্থক্য সম্পর্কিত বিষয়গুলি পরিমাপ করে। তবে কেবলমাত্র তারা খুঁজে পেয়েছেন যে তাদের নির্দিষ্ট ব্যবহারের ক্ষেত্রে, ইনলাইনিং আরও ভাল কাজ করে (সম্ভবত স্ক্রিপ্টটি খুব ঘন ঘন পরিবর্তিত হয়?) এর অর্থ এই নয় যে আমরা সেই থেকে একটি সাধারণ নিয়ম অর্জন করতে পারি, বা এমনকি আমাদের "প্রচলিত" উপেক্ষা করা উচিত বিধি (স্ক্রিপ্টগুলি বহিরাগত করতে)।
কনরাড রুডল্ফ

8
@ কনরাডরুডল্ফ - সম্মত, কোনও সাধারণ নিয়ম গুগলের পদ্ধতির থেকে নেওয়া উচিত নয়। আমি কেবল বলছি এটি একটি ইঙ্গিত যা এটি আপনার উত্তরটিতে নিয়মকে প্রশ্ন করা উচিত । যাইহোক, আমি মনে করি যে এইচটিটিপি অনুরোধগুলি হ্রাস করার জন্য গুগল এটির কারণ এবং এটি 0.000001% এরও বেশি সাইটের উপকার করতে পারে। ব্যান্ডউইথ উচ্চতর হয়ে উঠছে তবে রাউন্ড ট্রিপের সময় একই থাকবে। একটি সম্পূর্ণ সিরিয়াল এইচটিটিপি অনুরোধ সরিয়ে ফেলা বাহ্যিক জেএসের ক্যাচিং সুবিধার তুলনায় কখনও কখনও ভাল। আপনার জেএসের কোর্সের আকারের উপর নির্ভর করে।
কলম

5
@ ক্যালাম এটি সত্য হলেও ক্যাশিংয়ের বিষয়টি এখনও অবধি রয়ে গেছে এবং গুরুত্বপূর্ণ থেকে যায়। রাউন্ডট্রিপগুলি হ্রাস করা কেবলমাত্র তখনই গুরুত্বপূর্ণ যখন আপনার দর্শকরা ফিরে না আসে (এবং তারপরে আপনি এটির পক্ষে যথেষ্ট পৃষ্ঠা হিট পাবেন না) বা আপনার সামগ্রীতে এত ঘন ঘন পরিবর্তন হয় যে স্ক্রিপ্ট ফাইলগুলি ক্যাশে করার কোনও সুবিধা নেই।
কনরাড রুডল্ফ

31

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

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


5
এটি আমার উদ্বেগের একটি। কয়েকটি লাইনের কোডের জন্য পৃথক এইচটিটিপি অনুরোধ করা অপব্যয় বলে মনে হচ্ছে।
ড্যান বুর্জো

আপনি সম্ভবত আপনার কোডের জন্য একটি নমুনা কনফিগারেশন পোস্ট করতে পারেন? আইএমও যদি এটি 300 টিরও কম অক্ষরের এবং একেবারে পৃষ্ঠা-নির্দিষ্ট থাকে তবে এটি ইনলাইন করুন।
হোর্স্ট গুটম্যান

এটি শীর্ষ উত্তর হতে হবে
imo

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

@ হার্স্ট গুটম্যান কীভাবে ফাইল রক্ষণাবেক্ষণের সাথে বহিরাগত সহায়তা দেবে? আমি ব্যক্তিগতভাবে যখনই সম্ভব বাহ্যিক জেএস পছন্দ করি তবে কী এমন কিছু উদ্দেশ্য আছে যা বজায় রাখা সহজ করে তোলে?
জিঙ্গলেস্তুলা

21

বহিরাগত জাভাস্ক্রিপ্টটি ইয়াহু পারফরম্যান্সের একটি নিয়ম: http://developer.yahoo.com/performance/rules.html# বাহ্যিক

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


1
আমি মনে করি ইয়াহুও সমস্ত জাভাস্ক্রিপ্টকে একটি এইচটিটিপি কলটিতে যুক্ত করার পরামর্শ দিয়েছিল - এর অর্থ এই নয় যে স্ক্রিপ্টগুলি বিকাশের সময় একই ফাইলে থাকা উচিত
পল শ্যানন

এছাড়াও, উপরে উল্লিখিত হিসাবে, HTTP / 2 "1 কল" অনুশীলনও পরিবর্তন করে।
জিঙ্গলেস্তুলা

19

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

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

<!DOCTYPE html>
     <html>
         <head>
             <script>/*...inlined jquery, angular, your code*/</script>
             <style>/* ditto css */</style>
         </head>
         <body>
             <!-- inline all your templates, if applicable -->
             <script type='template-mime' id='1'></script>
             <script type='template-mime' id='2'></script>
             <script type='template-mime' id='3'></script>

যেহেতু আপনার অংশটি তারের নিচে না পাঠানোর জন্য এটি আপনার কোনও কিছুর পরে ব্যয় করে, তাই আপনি আশা করতে পারেন যে ক্লায়েন্টটি আপনার সার্ভারের সাথে সংযোগ স্থাপনের পরে এই কোথাও 5 মিমি + লেটেন্সি পেতে শুরু করবে। ধরে নিচ্ছি যে সার্ভারটি যুক্তিসঙ্গতভাবে বন্ধ হয়ে গেছে এই বিলম্বটি 20 মিমি থেকে 60 মিটারের মধ্যে হতে পারে। ব্রাউজারগুলি এই বিভাগটি পাওয়ার সাথে সাথে এটি প্রক্রিয়া শুরু করবে এবং প্রসেসিং সময়টি সাধারণত 20 বা ততোধিক ফ্যাক্টর দ্বারা স্থানান্তর সময়কে প্রাধান্য দেয়, যা এখন <dynamic>অংশটির সার্ভার-সাইড প্রসেসিংয়ের জন্য আপনার মোড়কযুক্ত উইন্ডো ।

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

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

আমি এসপিএ অ্যাপ্লিকেশনগুলির অপ্টিমাইজেশন সহ অনেক কাজ করি। লোকেদের মনে করা সাধারণভাবে যে ডেটা ভলিউম একটি বড় ব্যাপার, যদিও সত্যিকভাবে বিলম্ব হয় এবং কার্যকরভাবে প্রায়শই প্রাধান্য পায়। আমি তালিকাভুক্ত যে গ্রন্থাগারগুলি তালিকাভুক্ত করেছি সেগুলি 300kb ডেটা যুক্ত করে, এবং এটি কেবল 68 কেবি গিজিপ, বা 2 মিমি 3 জি / 4 জি ফোনে 200 মিমি ডাউনলোড করে, এটি ঠিক একই ধরণের তথ্য ছিল কিনা তা যদি একই ফোনে পরীক্ষা করতে পারে তবে এটি পরীক্ষা করতে হবে এর ক্যাশে ইতিমধ্যে এটি প্রক্সি ক্যাশে থাকলেও, কারণ মোবাইল ল্যাটেন্সি ট্যাক্স (ফোন-টু-টাওয়ার-ল্যাটেন্সি) এখনও প্রযোজ্য। এদিকে, ডেস্কটপ সংযোগগুলিতে সাধারণত প্রথম হপ লেটেন্সি রয়েছে তবে সাধারণত উচ্চতর ব্যান্ডউইথ থাকে।

সংক্ষেপে, এখনই (2014), সমস্ত স্ক্রিপ্ট, শৈলী এবং টেমপ্লেটগুলি ইনলাইন করা ভাল best

সম্পাদনা (মে 2016)

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


<লিডামিক> অংশ অংশের সার্ভার-সাইড প্রসেসিংয়ের জন্য যা এখন আপনার অনুভূতিযুক্ত উইন্ডোটি পাইনি - সার্ভারটি যা যা প্রয়োজন তার প্রক্রিয়া করে এবং তারপরেই পুরো রেন্ডার এইচটিএমএল (মাথা + দেহ) পরিবেশন করে, অন্য সার্ভারটি কীভাবে প্রক্রিয়াজাত করছে? তার পরে কি দরকার?
জন্মদিন টোকোডে

@ বার্নটোকোড ধারণাটি হ'ল ক্লায়েন্টকে একই সাথে সার্ভার সাইডকে কিছু করার জন্য কিছু করতে হবে। কারণ ক্লায়েন্ট লাইব্রেরিগুলি ব্যাখ্যা করা দরকার - সার্ভারে কোনও গণনা করার আগে প্রক্রিয়াটি শুরু করা ভাল । এমোরিটাইজড উইন্ডোটি ক্লায়েন্টকে জেএস প্রক্রিয়া করতে সময় নেয়। আপনি যদি 2-স্টেজের রকেট অর্কেস্টেট করেন তবে আপনি উইন্ডোটি বিনামূল্যে পান।
গ্লেনো


9

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

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

5

আপনার সর্বদা বাহ্যিক স্ক্রিপ্টগুলি ব্যবহার করার অন্য কারণ হ'ল বিষয়বস্তু সুরক্ষা নীতি (সিএসপি) এ সহজ রূপান্তর । সিএসপি ডিফল্টগুলি সমস্ত ইনলাইন স্ক্রিপ্টকে নিষেধ করে, আপনার সাইটকে এক্সএসএস আক্রমণ প্রতিরোধী করে তোলে।


4

আমি প্রয়োজনীয় কোডটি একবার দেখে নেব এবং এটি প্রয়োজন হিসাবে আলাদা আলাদা ফাইলগুলিতে বিভক্ত করব। প্রতিটি জেএস ফাইল কেবলমাত্র ফাংশন ইত্যাদির একটি "লজিক্যাল সেট" ধারণ করে। সমস্ত লগইন সম্পর্কিত ফাংশনগুলির জন্য একটি ফাইল।

তারপরে প্রতিটি এইচটিএমএল পৃষ্ঠায় সাইট বিকাশের সময় আপনি কেবলমাত্র প্রয়োজনীয়গুলি অন্তর্ভুক্ত করেন। আপনি যখন আপনার সাইটের সাথে লাইভ যান আপনি প্রতিটি জেএস ফাইলকে একটি ফাইলে সংযুক্ত করে উপযুক্ত করতে পারেন।


4

আমি ইনলাইন জাভাস্কিপ্টের জন্য একমাত্র প্রতিরক্ষা দিতে পারি তা। নেট এমভিসির সাথে দৃ .়ভাবে টাইপ করা ভিউ ব্যবহার করার সময় আপনি সি # ভেরিয়েবলগুলির মধ্য জাভাস্ক্রিপ্ট উল্লেখ করতে পারেন যা আমি দরকারী বলে মনে করি।


3

তিনটি বিবেচনা:

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

2

বাহ্যিক স্ক্রিপ্টগুলি ফায়ারব্যাগ ব্যবহার করে ডিবাগ করা সহজ। আমি আমার জাভাস্ক্রিপ্ট ইউনিট পরীক্ষা করতে এবং এটি সমস্ত বাহ্যিক সহায়তা করা পছন্দ করি। আমি পিএইচপি কোড এবং এইচটিএমএলে জাভাস্ক্রিপ্ট দেখতে ঘৃণা করি এটি আমার কাছে বড় মেসের মতো দেখাচ্ছে।


2

জাভাস্ক্রিপ্ট বহিরাগত রাখার পয়েন্টে:

ASP.NET 3.5SP1 সম্প্রতি একটি যৌগিক স্ক্রিপ্ট রিসোর্স তৈরি করতে কার্যকারিতা চালু করেছে (একগুচ্ছ জেএস ফাইলগুলিকে একত্রে মিশ্রিত করুন)। এর আরেকটি সুবিধা হ'ল যখন ওয়েবসারভার সংকোচনতা চালু করা হয়, তখন কিছুটা বড় ফাইল ডাউনলোড করাতে আরও অনেক ছোট ফাইল (আরও কম ওভারহেড, রাউন্ডট্রিপ ইত্যাদি ...) কম সংক্ষেপণের অনুপাত থাকবে। আমার ধারণা এটি প্রাথমিক পৃষ্ঠার লোডে সংরক্ষণ করে, তারপরে ব্রাউজারটি ক্যাশিংয়ে উপরে বর্ণিত হিসাবে কিক্স করে।

এএসপি.এনইটি এক পাশে, এই স্ক্রিনকাস্টটি আরও সুবিধাগুলির সুবিধাগুলি ব্যাখ্যা করে: http://www.asp.net/learn/3.5-SP1/video-296.aspx


2

বাহ্যিক স্ক্রিপ্টগুলির আর একটি গোপন সুবিধা হ'ল আপনি সহজেই এগুলিকে jslint এর মতো একটি সিনট্যাক্স পরীক্ষকের মাধ্যমে চালাতে পারেন । এটি আপনাকে প্রচুর হৃদয়বিদারক, হার্ড-টু-ফাইন্ড, আই 6 বাগগুলি থেকে বাঁচাতে পারে।


1

আপনার দৃশ্যে মনে হচ্ছে পৃষ্ঠাগুলির মধ্যে ভাগ করা একটি ফাইলে বাহ্যিক স্টাফ লেখা আপনার পক্ষে ভাল। আমি উপরে বর্ণিত সমস্ত কিছুতে একমত


1

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

আমি আরও বলার সাহস করেছিলাম যে আপনি যদি আপনার সমস্ত জাভাস্ক্রিপ্ট বাহ্যিকভাবে স্থাপন না করতে পারেন তবে আপনার নিজের হাতে একটি খারাপ নকশা রয়েছে এবং আপনার ডেটা এবং স্ক্রিপ্টগুলি রিফ্যাক্টর করা উচিত


1

গুগল তার পৃষ্ঠার র‌্যাঙ্কিংয়ের পরিমাপের মধ্যে লোডের সময়কে অন্তর্ভুক্ত করেছে, আপনি যদি অনেকটা ইনলাইন করেন তবে আপনার পৃষ্ঠায় মাকড়সাগুলি ক্রল করতে আরও বেশি সময় লাগবে, যদি আপনাকে আরও অন্তর্ভুক্ত করতে হয় তবে এটি আপনার পৃষ্ঠার র‌্যাঙ্কিংয়ে প্রভাব ফেলতে পারে। যে কোনও ক্ষেত্রে বিভিন্ন কৌশল আপনার র‌্যাঙ্কিংয়ে প্রভাব ফেলতে পারে।


1

ভাল আমি মনে করি যে একক পৃষ্ঠাগুলির ওয়েবসাইটগুলি তৈরি করার সময় আপনার ইনলাইনটি ব্যবহার করা উচিত কারণ একাধিক পৃষ্ঠায় স্ক্রিপ্টগুলি ভাগ করার প্রয়োজন হবে না


-3

বহিরাগত জেসগুলি সর্বদা ব্যবহার করার চেষ্টা করুন কারণ ইনলাইন জেএস বজায় রাখা সবসময় কঠিন।

তদুপরি, এটি পেশাদারভাবে প্রয়োজন যে আপনি একটি বাহ্যিক জেএস ব্যবহার করুন যেহেতু বেশিরভাগ বিকাশকারী বাহ্যিকভাবে জেএস ব্যবহারের পরামর্শ দেন।

আমি নিজেই বাহ্যিক জেএস ব্যবহার করি।


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