هل طريقة SPUtility.MakeBrowserCacheSafeLayoutsUrl مفيدة على الإطلاق؟

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/85984

  •  10-12-2019
  •  | 
  •  

سؤال

لقد لاحظت حلاً قد يساعدك في التحكم في التخزين المؤقت لـ ملفات جافا سكريبت.

هناك طريقة SPUtility.MakeBrowserCacheSafeLayoutsUrl. MSDN يقول هذه الطريقة: تقوم بإرجاع عنوان URL جديد لن يتم تخزينه مؤقتًا بواسطة المتصفح عند الملف المرتبط التغييرات.

يبدو رائعا.لقد حاولت استخدام هذه الطريقة مثل هذا:

 <script type="text/jscript" src="<%=SPUtility.MakeBrowserCacheSafeLayoutsUrl("projectName/scripts/plugins/tapes_report_definition.js", false)%>" ></script>

لذلك، عملت.لقد تم إنشاء جزء ?rev={MD5Hash_of_my_file.js} في نهاية عنوان URL.ولكن بعد أن قمت بتغيير ملف .js هذا، لم يتم إنشاء تجزئة MD5 جديدة.؟rev بقي الجزء على حاله.لقد حاولت iisreset وإعادة النشر وما إلى ذلك، لكن لم يساعدني شيء.لقد تحققت من هذه الطريقة باستخدام Reflector وعلمت أن MakeBrowserCacheSafeLayoutsUrl لا يقوم بإنشاء تجزئة MD5 طوال الوقت، ولكنه يحصل عليه من كائن SPVolitileCache الداخلي.

اعتقدت أنه يمكنني مسح ذاكرة التخزين المؤقت هذه عن طريق حذف جميع الملفات الموجودة داخل هذين المجلدين:

  1. %APPDATA%\Microsoft\Web Server Extensions\Cache
  2. %USERPROFILE%\AppData\Local\Microsoft\WebsiteCache

الحذف لم يساعد.SPUtility.MakeBrowserCacheSafeLayoutsUrl لا يزال يُرجع نفس القيمة بعد تغيير ملف جافا سكريبت.

لدي ثلاثة أسئلة:

  1. كيف أقوم بتحديث SPVolitileCache بعد كل شيء؟
  2. كيف تجبر sputility.makebrowsercachesafelayoutsurl إنشاء جديد؟ rev = بدون تطهير ذاكرة التخزين المؤقت؟
  3. بالنظر إلى كل ما سبق، هل من المنطقي استخدام SPUtility.MakeBrowserCacheSafeLayoutsUrl؟

أي معلومات إضافية سيكون موضع تقدير كبير!

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

المحلول

لقد قمت بفحصها مرة أخرى وأؤكد أن هذه الطريقة قابلة للتطبيق تمامًا.يتم تحديث عنوان URL للملف بعد iisreset.هذا هو بالضبط ما أردت رؤيته.

نصائح أخرى

أرغب في إضافة هذا كتعليق فقط ولكن Stackexchange لن يسمح بذلك.لذا، هنا إجابتي:لأي شخص يتطلع إلى حل مشكلة عناصر البرنامج النصي المخزنة مؤقتًا داخل جزء ويب "محرر المحتوى" (أو رابط JSLink إلى ملف .js)، فاعلم أن أسلوب SPUtility.MakeBrowserCacheSafeUrl هو أسلوب الخادم فقط ويجب تضمينه في صفحة ASPX.تأكد من أنك تفهم أنه لا يمكنك فقط وضع التعليمات البرمجية في ملف .js أو جزء الويب الخاص بمحرر المحتوى الخاص بك وتشغيله.انها لن.

ومع ذلك، فإن الطريقة لا قيمة لها حقًا لأنك قد تستخدم علامة ScriptLink فقط.سوف يقوم ScriptLink بإضافة المراجعة لك.المرة الوحيدة التي قد تميل فيها إلى استخدام هذه الطريقة هي إذا كنت تقوم بتضمين علامات البرنامج النصي في الصفحة، وهو ما لا يجب عليك فعله أبدًا.وهذا يتعارض تمامًا مع إطار عمل SOD وأفضل الممارسات ومن المحتمل ألا يعمل مع MDS.

السبب وراء العثور على هذه الصفحة هو أن لدي جزء ويب لنموذج InfoPath على الصفحة وأن المطور السابق استخدم ملف .js منفصل لإنشاء بعض الأزرار له.تتم الإشارة إلى ملف .js الخاص بالأزرار في جزء ويب الخاص بمحرر المحتوى.من المحتمل أن يكون هذا سيناريو شائعًا ولكنه يمثل مشكلة لأن مرجع الملف لا يحتوي على ?rev زائدة إلا إذا تمت إضافته يدويًا.ما لم تكن هناك طريقة فعلية من جانب العميل تساعد في توليد نوع ما من المراجعة، ولا أرى كيف يمكن أن تكون هناك، فإن تصويتي هو أن هذه الطريقة غير مجدية.

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