有效的場景:
我有一個
APP_FRAMEWORK.JS通過 a 生成的檔案WEBPACK,包括BOOTSTRAP AND JQUERY在其中。<script type="text/javascript" src="{{ asset('js/app_framework.js') }}" defer></script> @if(!empty($assets['js'])) @foreach ($assets['js'] as $js) <script type="text/javascript" src="{{ asset($js) }}"></script> @endforeach @endif
如果我像示例中那樣加載頁面,它將完美運行,在下面的回圈中加載的腳本中沒有任何錯誤。
我的問題:
- 為什么,如果我在加載時洗掉“text/javascript”
MAIN SCRIPT (APP_FRAMEWORK.JS),$ is not defined錯誤開始出現? - 請記住,這
TYPE不再是強制性的,腳本以正確的順序加載,并且有一個DEFER!!!

uj5u.com熱心網友回復:
強制瀏覽器不從快取中加載腳本(在 Mac 上為SHIFT RELOAD)
這樣做,我們已經看到APP_FRAMEWORK.JS正在加載其他腳本。另一點,
defer不會阻止其他腳本被加載,直到那些定義了它的腳本執行它們的程序。defer屬性的定義更進一步,是:該
defer屬性告訴瀏覽器僅在 HTML 決議完成后運行腳本。腳本將被異步請求,它的下載將完成,只有當 HTML 檔案的分析完成后,它才會被執行。即使完整的腳本下載發生在完整的 HTML 決議之前,它也不會在稍后運行。如果您有多個具有該defer屬性的腳本元素,它們將被并行請求并按規定的順序執行。由于腳本位于頁面底部,因此無需使用
defer,因為它永遠不會停止解釋 HTML 以下載任何 JS。問題本身與 無關
type="text/javascript",一切都與加載腳本的大小、下載時間、依賴和執行的順序有關。如果你真的需要遵循一個JS加載順序,
defer必須在 all 中使用<script defer>,使其遵循宣告的順序,因此:
<script defer src="{{ asset('js/app_framework.js') }}" defer></script>
<script defer src="{{ asset('js/app.js') }}"> others ...</script>
@if(!empty($assets['js']))
@foreach ($assets['js'] as $js)
<script defer src="{{ asset($js) }}"></script>
@endforeach
@endif

參考鏈接:https : //www.braziljs.org/p/diferencas-entre-async-e-defer
現在來了一個不想閉嘴的問題......為什么,即使按照正確的順序從快取中加載檔案,瀏覽器也會顯示訊息?
有沒有人聽說過error cache基于這些檔案的瀏覽器?就像,看到腳本是相同的,這些腳本的最后一次執行給出了錯誤并且已經自動顯示錯誤?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/348624.html
標籤:javascript html 查询 拉拉维尔 网络
下一篇:當添加另一個可拖動小部件時,如何防止堆疊中的可拖動小部件(使用Matrix4Transform創建)改變它們的位置?
