Ich benutze MaterializeCSS, AngularJS und jQuery, um eine einfache Webapp zu erstellen. Da ich Materialise verwende, und aufgrund der Gründe, warum ich es entworfen habe, muss ich die Sidebar-Schaltfläche in jeder AngularJS-Ansicht mit jQuery initialisieren.jQuery Senden von Abfragezeichenfolgen für jedes Skript embebbed
Wenn ich diese Kopie auf jeder Ansicht, es funktioniert gut:
<script>
$(".button-collapse").sideNav({
menuWidth: 150
});
</script>
jedoch, wenn ich eine neue Datei mit dem Namen js sidenav.js:
<script src='/js/sidenav.js'></script>
aus irgendeinem Grund, jQuery (oder vielleicht Angular, aber das XHR wird von jQuery initiiert) sendet ein XHR mit einer Abfragezeichenfolge, um dieses Skript zu laden, wodurch der Cache ungültig wird und aufgrund von Latenz eine "Verzögerung" verursacht wird. Während nach einiger Nutzung alle Ansichten zwischengespeichert werden, hält das Skript aufgrund der Abfrage-String neu geladen werden:
[Thu Jul 21 16:39:31 2016] 192.168.0.103:38124 [200]: /js/sidenav.js?_=1469129949496
[Thu Jul 21 16:39:37 2016] 192.168.0.103:38123 [200]: /js/sidenav.js?_=1469129949497
[Thu Jul 21 16:39:42 2016] 192.168.0.103:38126 [200]: /js/sidenav.js?_=1469129949498
[Thu Jul 21 16:39:42 2016] 192.168.0.103:38125 [200]: /js/sidenav.js?_=1469129949499
[Thu Jul 21 16:39:47 2016] 192.168.0.103:38128 [200]: /js/sidenav.js?_=1469129949500
[Thu Jul 21 16:39:51 2016] 192.168.0.103:38129 [200]: /js/sidenav.js?_=1469129949501
Wie kann ich jQuery oder Angular davon ab, eine Abfrage-String auf sie oder ein anderes Verfahren zu stoppen, es zu cachen?
Danke.
Hier ist, was Chrom sagt, wenn es geladen wird: collapse.js _ = 1469128268787 xhr \t jquery.js: 8630 \t 365 B \t Es ist ein XHR, nicht der Browser, denke ich –