سؤال

يحصل شملت

وبلدي جافا سكريبت عدة مرات مع العلامة النصي، كما يلي:

<script src="code.js></script>
<script src="code.js></script>
<script src="code.js></script>

والآن لدي هذا الرمز داخل على code.js لأجعل المدى كود مرة واحدة فقط دون الكتابة بمساحات بلدي:

if(typeof _ow == "undefined" ){
_ow = {};
// code in here will only run once

_ow.Auth = (function(){
})();
_ow.Template = (function(){
})();

}

هل هناك أي هيكل أفضل I يمكن أن تستخدم لجعل قانون بلدي تشغيل مرة واحدة فقط؟

هل كانت مفيدة؟

المحلول

هل أنت على دراية كروكفورد في جافا سكريبت وحدة نمط ؟

وهناك اختلاف طفيف في كيفية منع الكتابة مساحة الاسم:

var _ow;
if(!_ow) _ow = {};

نصائح أخرى

var _ow = _ow || { Auth: ... };

وإذا به بالفعل محددة ثم لن يكون تعريفه مرة أخرى.

وبينما ما تقومون به سوف يعمل من الناحية الفنية، فمن غير فعالة، لأنه حتى وإن التعليمات البرمجية يحصل على تشغيل مرة واحدة فقط، فإنه في نهاية المطاف يجري تحليل عدة مرات على بعض المتصفحات (وهذا يختلف من تحميل ملف عبر الشبكة ولا يمكن أن يكون مؤقتا).

فمن الأفضل للتأكد من أن البرنامج النصي فقط يحصل شملت مرة واحدة. لجميع وظائف المتكررة يمكنك كشف وظيفة ليتم استدعاؤها كلما دعت الحاجة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top