একটি জাভাস্ক্রিপ্ট অসিনচ-লোডার নির্বাচন করা [বন্ধ]


9

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

এর মতো, এখানে আমার প্রয়োজনীয়তাগুলি রয়েছে:

  1. অসম্পূর্ণভাবে জাভাস্ক্রিপ্ট এবং সিএসএস রিসোর্স ফাইলগুলি লোড করুন।
  2. সংস্করণ জুড়ে নির্ভরতা-অর্ডার এবং নেস্টেড-নির্ভরতা পরিচালনা করুন।
  3. কোনও উত্স ইতিমধ্যে লোড হয়েছে কিনা তা সনাক্ত করুন।
  4. ক্রস-ডোমেন লোডিং (সিডিএন) এর জন্য অবশ্যই অনুমতি দিতে হবে
  5. (alচ্ছিক) আমাদের কোনও উত্স আনলোড করার অনুমতি দিন।

আমি তাকিয়ে ছিলাম:

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

সুতরাং আমার প্রশ্নগুলি হ'ল:

  • আপনি কোনটি ব্যবহার করেন? এবং কেন?
  • এমন কি অন্যরা আছেন যা আমার প্রয়োজনীয়তা পুরোপুরি পূরণ করে?
  • আপনি কোনটির সাথে কাজ করতে সবচেয়ে সুস্পষ্ট এবং সহজ বলে মনে করেন? এবং কেন?

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


জাভাস্ক্রিপ্টের জন্য, আমি মনে করি না যে # 5 এমনকি সম্ভব। এটি সিএসএসের পক্ষে তাত্ত্বিকভাবে সম্ভব হতে পারে তবে আমি নিশ্চিত নই যে কোনও ব্রাউজার এটি সমর্থন করে কিনা।
মাইক বারানজাক

@ মাইকে মন্তব্য করার জন্য ধন্যবাদ! যদি অ্যাসিচ-লোডার অবজেক্ট-ভেরিয়েবলগুলি ব্যবহার করে ট্র্যাক করা এবং জনবহুল সংস্থানগুলি ... এটি সম্পূর্ণভাবে সম্ভব।
বন্দী

ঠিক আছে, তবে নতুন কনস্ট্রাক্টর সেই বস্তুর সদৃশ হবে, সুতরাং আপনি যদি ডেকে কিছু নতুন তৈরি করেন তবে এটি এখনও সেখানে উপস্থিত থাকবে। আপনি এটিকে কেন আনলোড করবেন?
ছদ্মবেশী

@ user1525 মন্তব্য করার জন্য ধন্যবাদ! আনলোড লোড করা রিসোর্স স্মৃতিতে সঞ্চয় করে। আমি আপনার মন্তব্যে (কিছুক্ষণের মধ্যে) কিছু চিন্তাভাবনা নিয়ে আমার প্রশ্নটি উপরে সম্পাদনা করব। আবার ধন্যবাদ!
বন্দী

jQuery এর ইতিমধ্যে getScriptস্ক্রিপ্ট ইনজেকশনটির জন্য একটি ফাংশন রয়েছে ।
zzzzBov

উত্তর:


7

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

জাভাস্ক্রিপ্ট এবং সিএসএস রিসোর্স ফাইলগুলি অ্যাসিঙ্ক্রোনালি লোড করুন : স্ক্রিপ্ট ট্যাগ ইঞ্জেকশন ব্যবহার করার জন্য আপনার প্রয়োজনীয় কোনও মডিউল লোড করা প্রয়োজন, তাই অ্যাসিঙ্ক্রোনাসলি।

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

কোনও উত্স ইতিমধ্যে লোড হয়েছে কিনা তা সনাক্ত করুন : প্রয়োজনীয় সংস্থাগুলি কেবল একবারই একটি মডিউল লোড করবে।

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

আপনি যদি এটির ফর্ম্যাট ব্যবহার করে মডিউল লেখেন তবে প্রয়োজনীয় জেএস সবচেয়ে ভাল পরিবেশন করবে এবং আপনি যদি কাঁচা জাভাস্ক্রিপ্ট লোড করতে এটি ব্যবহার করছেন তবে তা কার্যকর হবে।

এটি এমন একটি বিল্ড প্রক্রিয়াও সরবরাহ করে যা আপনার মডিউলগুলি একসাথে উত্পাদনের জন্য একীভূত করবে।


3

আপনি তত্ত্বগতভাবে কেবল ইতিমধ্যে লোড হওয়া স্ক্রিপ্টগুলির একটি তালিকা রাখতে পারেন এবং এমন একটি ফাংশন তৈরি করতে পারেন যা স্ক্রিপ্টগুলি লোড করে না yet

http://jsfiddle.net/BDG/Dhdu7/2/


2
বা কার্ল / প্রয়োজনীয় জেএস ব্যবহার করুন তাদের এ এবং আরও বৈশিষ্ট্য রয়েছে। এবং আপনার নিজের এটি বজায় রাখতে হবে না;)
রায়নস

আপনি পরিষ্কার কাঠামো উল্লেখ করতে ভুলে গেছেন এবং এতে আপেক্ষিক অন্তর্ভুক্ত রয়েছে।
ছদ্মবেশী

2

আপনি যদি প্রয়োজনীয় জেএসের দিকে তাকিয়ে থাকেন এবং সিএসএস ফাইলগুলির উপর নির্ভর করতে চান, আপনি সিএসএসপি প্রয়োজনীয় জেএস প্লাগইনটি চেকআউট করতে পারেন :

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

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