ich eine Website, die wesentlich langsamer, als ich bin lädtWarum erzwingt Content-Security-Policy Chrome, JavaScript sequenziell zu laden?
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">
an der Spitze der index.html Zugabe.
Nach dem Debuggen für eine Weile merke ich, dass alle JavaScript-Quellen nacheinander geladen werden, wenn dieses Meta-Tag vorhanden ist. Wenn ich diesen Tag entferne, wird Javascript parallel geladen, so dass die Website viel schneller geladen werden kann.
Um dies zu reproduzieren, schrieb ich diese leidet Probe html-Datei:
<!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>
Hier ist das Netzwerk-Timeline mit dem "Content-Sicherheitspolitik" Meta-Tag:
Wie Man kann sehen, Ressourcen werden sequentiell geladen.
Hier ist die Netzwerk-Zeitleiste, wenn ich das "Content-Security-Policy" -Tag ENTFERNEN.
Wie erwartet, werden Javascript Ressourcen parallel hier geladen und die Seite fertig viel schneller auch bei kleinen Beispiel zu laden.
Gibt es eine Erklärung für dieses Verhalten? Wie kann ich das Beste aus beiden Welten haben: paralleles Laden von Javascript-Dateien und gleichzeitig aktiviertem "Content-Security-Policy"?
Die Tests wurden alle mit dem neuesten Chrome (50.0.2661.75 (64-Bit)) durchgeführt. Weder Safari noch Firefox zeigen das gleiche merkwürdige Verhalten, sie laden Javascripts parallel auch mit aktivierter "Content-Security-Policy".
Dies kann Ihnen helfen,) [Eine Einführung Sicherheitspolitik zum Inhalt] (http://www.html5rocks.com/en/tutorials/security/content-security-policy/) können Sie eine erstellen "withe list", aber ich bin mir nicht sicher, ob es hilft ... –
Hat Ihre Domain Cache-Header für Ihre statischen Assets wie JS-Dateien aktiviert? – TeaCode
Ich bin nicht in der Lage, das zu reproduzieren, https://mobile.twitter.com/ verwendet den gleichen CSP-Header * (nicht in einem Meta-Tag, aber sollte das gleiche sein) *, und es scheint, Ressourcen in parallell gut zu laden . Sie sollten es in anderen Browsern testen und sehen, ob das Problem nur in Chrome auftritt. – adeneo