首页 > 解决方案 > 删除“text/javascript”属性时未定义 Jquery

问题描述

有效的场景:

如果我像示例中那样加载页面,它可以完美运行,在下面的循环内加载的脚本中没有任何错误。

我的问题:

在此处输入图像描述 在此处输入图像描述

标签: javascripthtmljquerylaravelweb

解决方案


  1. 强制浏览器不从缓存中加载脚本(在 Mac 上 为SHIFT + RELOAD在此处输入图像描述 ) 仅仅通过这样做,我们已经看到APP_FRAMEWORK.JS正在加载其他脚本。

  2. 另一点,defer在定义了它的脚本执行其进程之前,不会阻止加载其他脚本。属性的定义defer更进一步,即:

    defer属性告诉浏览器仅在 HTML 解析完成时才运行脚本。该脚本将被异步请求,它的下载将完成,只有当 HTML 文档的分析完成时,它才会被执行。即使完整的脚本下载发生在完整的 HTML 解析之前,它也不会在稍后运行。如果您有多个具有该defer属性的脚本元素,它们将被并行请求并按规定的顺序执行。

  3. 由于脚本位于页面底部,因此无需使用defer,因为它永远不会停止解释 HTML 以下载任何 JS。

  4. 问题本身与问题无关type="text/javascript",一切都与加载脚本的大小、下载时间、依赖顺序和执行顺序有关。

  5. 如果确实需要遵循 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基于这些文件的浏览器?就像,看到脚本是相同的,这些脚本的最后执行给出了错误并且已经自动显示错误?


推荐阅读