কেন @ স্ক্রিপ্টগুলি ব্যবহার করুন ender রেন্ডার ("~ / বান্ডিল / জেকারি")


217

কি করে

@Scripts.Render("~/bundles/jquery")

এইচটিএমএল থেকে কেবল স্ক্রিপ্টটি উল্লেখ করা থেকে পৃথক

<script src="~/bundles/jquery.js" type="text/javascript"></script>

কোন কর্মক্ষমতা লাভ আছে?


আমি কীভাবে টাইপ করব = "পাঠ্য / সিএসএস" - স্ট্যাকওভারফ্লো
এলসিজে

উত্তর:


288

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

উদাহরণস্বরূপ আপনি নিজের বান্ডিল তৈরি করতে পারেন:

bundles.Add(New ScriptBundle("~/bundles/mybundle").Include(
            "~/Resources/Core/Javascripts/jquery-1.7.1.min.js",
            "~/Resources/Core/Javascripts/jquery-ui-1.8.16.min.js",
            "~/Resources/Core/Javascripts/jquery.validate.min.js",
            "~/Resources/Core/Javascripts/jquery.validate.unobtrusive.min.js",
            "~/Resources/Core/Javascripts/jquery.unobtrusive-ajax.min.js",
            "~/Resources/Core/Javascripts/jquery-ui-timepicker-addon.js"))

এবং এটি এর মতো রেন্ডার করুন:

@Scripts.Render("~/bundles/mybundle")

নেটিভের @Scripts.Render("~/bundles/mybundle")ওপরে আরও একটি সুবিধা <script src="~/bundles/mybundle" />হ'ল ডিবাগ সেটিংটি @Scripts.Render()সম্মান করবে web.config:

  <system.web>
    <compilation debug="true|false" />

যদি debug="true"তা হয় তবে পরিবর্তে এটি কোনও উত্স ছাড়াই প্রতিটি উত্স স্ক্রিপ্টের জন্য স্বতন্ত্র স্ক্রিপ্ট ট্যাগগুলি সরবরাহ করবে।

স্টাইলশিটের জন্য আপনাকে স্টাইলবান্ডেল এবং @ স্টাইলস ব্যবহার করতে হবে। রেন্ডার ()।

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


9
কেবল ভাবছি: bu বান্ডিলের জন্য কোথাও কোনও ফাইল সঞ্চিত আছে বা এটি কেবল স্মৃতিতে রয়েছে?
এলিয়ট

15
এটি ক্যাশে সঞ্চিত।
নিকোজুইসি

4
সিডিএন অনুপলব্ধ থাকলে এটি স্বয়ংক্রিয়ভাবে একটি সিডিএন এবং স্থানীয় স্ক্রিপ্টগুলিতে ফ্যালব্যাক ব্যবহার করতে সেট করা যেতে পারে। এটা বেশ চতুর।
ড্যান এস্পার্জা

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

9
এমভিসি 4 (ভিজ্যুয়াল স্টুডিও) এর "বেসিক" টেমপ্লেটে, "বান্ডেলকনফিগ। সি" (অ্যাপ্লিকেশন ফোল্ডার) এ বান্ডিলগুলি প্রস্তুত করা হয়।
অ্যাপোলো

51

আপনি এটি ব্যবহার করতে পারেন:

@Scripts.RenderFormat("<script type=\"text/javascript\" src=\"{0}\"></script>", "~/bundles/mybundle")

আপনার আউটপুটটির বিন্যাস এমন একটি দৃশ্যে নির্দিষ্ট করতে যেখানে আপনার চরসেট, প্রকার ইত্যাদি ব্যবহার করতে হবে


3
প্রয়োজনীয়js মডিউলগুলি লোড করার জন্যও খুব দরকারী
ফিল

13
... বা asyncবৈশিষ্ট্য যুক্ত করতে ।
ক্রিস্টোফ ফিঙ্ক 9

7
@Scripts.RenderFormat("<script type=\"text/javascript\" async src=\"{0}\"></script>", "~/bundles/mybundle")
রবার্ট ম্যাককি

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