2016-04-15 9 views
8

मैं एक वेबसाइट है, जो काफी धीमी लोड करता आ रही है, जब मैं index.html के मुखिया केसामग्री-सुरक्षा-नीति बल क्रोम क्रमशः जावास्क्रिप्ट को लोड करने के लिए क्यों करता है?

<meta http-equiv="Content-Security-Policy" content="default-src 'self'"> 

जोड़ रहा।

थोड़ी देर के लिए डिबगिंग के बाद मुझे एहसास हो रहा है कि यह मेटा टैग मौजूद होने पर सभी जावास्क्रिप्ट स्रोत अनुक्रमिक रूप से लोड हो जाते हैं। जब मैं इस टैग को हटा देता हूं जावास्क्रिप्ट समानांतर में लोड होता है, तो वेबसाइट बहुत तेज़ी से लोड करने में सक्षम होती है।

timelineWithTag

के रूप में:

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Test</title> 
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'"> 
    </head> 

    <body> 
    Hello World 
    <script src="angular.js"></script> 
    <script src="angular-animate.js"></script> 
    <script src="angular-touch.js"></script> 
    </body> 
</html> 

यहाँ "सामग्री सुरक्षा-नीति" मेटा टैग के साथ नेटवर्क समय है:

इस पुन: पेश करने के लिए, मैं इस litte नमूना HTML फ़ाइल में लिखा था कोई देख सकता है, संसाधन क्रमशः लोड हो रहे हैं।

जब मैं "सामग्री-सुरक्षा-नीति" टैग को हटा देता हूं, तो नेटवर्क टाइमलाइन यहां है।

timelineWithoutTag

जैसी उम्मीद थी, जावास्क्रिप्ट ressources समानांतर में यहां लोड किए गए हैं और पेज बहुत तेजी से छोटा सा उदाहरण के साथ भी लोड करने से।

क्या इस व्यवहार के लिए कोई स्पष्टीकरण है? मैं दोनों दुनिया के सर्वश्रेष्ठ कैसे हो सकता हूं: "सामग्री-सुरक्षा-नीति" सक्रिय होने पर जावास्क्रिप्ट फ़ाइलों की समांतर लोडिंग भी सक्रिय हो सकती है?

परीक्षण सभी समय के दौरान नवीनतम क्रोम (50.0.2661.75 (64-बिट) के साथ किए गए थे। न तो सफारी और न ही फ़ायरफ़ॉक्स एक ही अजीब व्यवहार दिखाता है, वे दोनों "सामग्री-सुरक्षा-नीति" सक्रिय के साथ समानांतर जावास्क्रिप्ट लोड करते हैं।

+0

यह आपको मदद मिल सकती है;) [सुरक्षा नीति कन्टैंट के परिचय] (http://www.html5rocks.com/en/tutorials/security/content-security-policy/) यदि आप एक बना सकते हैं "withe सूची", लेकिन मुझे यकीन नहीं है कि यह मदद करता है ... –

+0

क्या आपके डोमेन में जेएस फाइलों जैसी आपकी स्थिर संपत्तियों के लिए कैश हेडर सक्षम हैं? – TeaCode

+0

मैं इसे पुन: उत्पन्न करने में सक्षम नहीं हूं, https://mobile.twitter.com/ उसी सीएसपी हेडर का उपयोग करता है * (मेटा टैग में नहीं, लेकिन यह वही होना चाहिए) *, और ऐसा लगता है कि समानांतर में संसाधनों को लोड करना ठीक है । आपको अन्य ब्राउज़रों में इसका परीक्षण करना चाहिए, और देखें कि समस्या क्रोम में है या नहीं? – adeneo

उत्तर

0

यह

Chrome 49.0.2623.110 (64-bit) 
Chrome 50.0.2661.75 (64-bit) 

का उपयोग कर दोनों ब्राउज़रों कैशिंग बंद रखकर कुछ मिलीसेकेंड में और समानांतर में स्थानीय होस्ट से उन तीन फ़ाइलें परोस रहे हैं पर एक मैक प्रतिलिपि प्रस्तुत करने योग्य नहीं है।

मैंने इसे रिमोट सर्वर पर भी कोशिश की, यानी स्थानीयहोस्ट नहीं और दोनों धीमे हो गए लेकिन सभी फाइलें समानांतर में लोड की गईं यानी मुझे सीएसपी चालू या बंद होने के साथ कोई फर्क नहीं पड़ता।

मेरा मानना ​​है कि सीएसपी के लिए सी ++ का उपयोग करने के लिए मोज़िला परिवर्तन था लेकिन यह साल पहले था और यह क्रोम को प्रभावित नहीं करेगा।

https://blog.mozilla.org/security/2014/09/10/faster-csp/

+0

इस परीक्षण के लिए बहुत बहुत धन्यवाद। मैं मैक पर Chrome 50.0.2661.75 (64-बिट) पर भी अपने परीक्षण चला रहा हूं। मैंने विंडोज 10 के तहत क्रोम पर भी परीक्षण किया और अभी भी अनुक्रमिक रूप से स्क्रिप्ट फ़ाइलों को लोड करने में सक्षम हूं। क्या आप लोडिंग व्यवहार को देखने के लिए क्रोम डेवलपर टूल का भी उपयोग कर रहे हैं? क्या आप कृपया www.sonopad.com/krono को एक परीक्षण के रूप में खोल सकते हैं। वहां मैं परीक्षण की अपनी फाइलें होस्ट कर रहा हूं। हो सकता है कि सर्वर किस तरह से सेवा करता है, कोई फर्क पड़ता है? – bluegaspode

संबंधित मुद्दे