Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';从文件加载脚本的最佳方式是什么?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 什么';从文件加载脚本的最佳方式是什么?

Javascript 什么';从文件加载脚本的最佳方式是什么?,javascript,jquery,html,Javascript,Jquery,Html,我有一个通过ajax调用或jquery加载div的应用程序 $('#cont').load("something.html"); <div id="cont"> </div> $('#cont').load(“something.html”); something.html看起来像: <script src="./js/test.js"></script> <table> .......blah....blah &

我有一个通过ajax调用或jquery加载div的应用程序

$('#cont').load("something.html");

<div id="cont">
</div>
$('#cont').load(“something.html”);
something.html看起来像:

<script src="./js/test.js"></script>    
<table>
    .......blah....blah
</table>

……诸如此类……诸如此类
我得到: jquery-1.12.0.min.js:4主线程上的同步XMLHttpRequest因其对最终用户体验的有害影响而被弃用。如需更多帮助,请查看

我一直在查看test.js文件,只是将脚本剪切并粘贴到something.html的开头,但这是大量冗余的脚本。很多页面都使用它,维护起来很麻烦


有没有办法让脚本以这种方式加载到单独的.js文件中?

尝试将其分为两个操作。在页面中,使用引用外部JS文件的普通脚本元素加载JS脚本:

<script src="./js/test.js"></script>

尝试将其分为两个操作。在页面中,使用引用外部JS文件的普通脚本元素加载JS脚本:

<script src="./js/test.js"></script>

如果脚本不需要同步执行,可以尝试:

<script src="./js/test.js" async="async"></script>    
<table>
    .......blah....blah
</table>

……诸如此类……诸如此类
这样做意味着不能保证在解析和呈现以下
之前执行脚本。设置
async
属性意味着这可以按任何顺序发生

HTML5规范是:

async和defer属性是表示 脚本应该如何执行。延迟和异步属性必须是 如果src属性不存在,则不能指定

有三种可能的模式可以使用这些选项进行选择 属性。如果存在async属性,则脚本将被删除 一旦可用,就异步执行。如果是异步的 属性不存在,但存在“延迟”属性,则 脚本在页面完成解析后执行。如果两者都没有 属性,则获取并执行脚本 紧接着,在用户代理继续解析页面之前

对于现代浏览器:

  • IE 10+
  • FF 3.6+
  • 铬8+
  • 狩猎5.1+
  • 歌剧15+

如果脚本不需要同步执行,您可以尝试:

<script src="./js/test.js" async="async"></script>    
<table>
    .......blah....blah
</table>

……诸如此类……诸如此类
这样做意味着不能保证在解析和呈现以下
之前执行脚本。设置
async
属性意味着这可以按任何顺序发生

HTML5规范是:

async和defer属性是表示 脚本应该如何执行。延迟和异步属性必须是 如果src属性不存在,则不能指定

有三种可能的模式可以使用这些选项进行选择 属性。如果存在async属性,则脚本将被删除 一旦可用,就异步执行。如果是异步的 属性不存在,但存在“延迟”属性,则 脚本在页面完成解析后执行。如果两者都没有 属性,则获取并执行脚本 紧接着,在用户代理继续解析页面之前

对于现代浏览器:

  • IE 10+
  • FF 3.6+
  • 铬8+
  • 狩猎5.1+
  • 歌剧15+

当jQuery插入包含
元素的HTML时,它会立即执行脚本。如果是对外部脚本的引用,它将使用同步AJAX递归加载脚本,以模拟浏览器加载HTML文件时加载脚本的方式。这会触发警告

您可以忽略这个警告,因为同步AJAX不会很快消失。但是如果你真的想摆脱它,你可以把你的负载分成两部分。从
something.html
中取出加载
test.js
的行,并使用:

$.getScript('./js/test.js', function() {
    $("#cont").load('something.html');
});

当jQuery插入包含
元素的HTML时,它会立即执行脚本。如果是对外部脚本的引用,它将使用同步AJAX递归加载脚本,以模拟浏览器加载HTML文件时加载脚本的方式。这会触发警告

您可以忽略这个警告,因为同步AJAX不会很快消失。但是如果你真的想摆脱它,你可以把你的负载分成两部分。从
something.html
中取出加载
test.js
的行,并使用:

$.getScript('./js/test.js', function() {
    $("#cont").load('something.html');
});

嗨,詹姆斯,这是最好的:因为这是通常的做法。这要看情况而定。您可以使用AMD之类的加载程序,您可以将脚本与browserify绑定,您可以创建一个
并设置
src
在放入页面后,您可以像现在一样使用jQuery
.load()
。它难以置信地依赖于用例。我想知道你为什么会收到同步警告。我认为
.load()
不能同步加载。据我所知,甚至没有一个属性允许您执行此操作。我知道我是通过从外部文件加载脚本,而将脚本加载到div。。。例如index.html有一个div,我用jquery加载它。我加载的文件正在查找外部文件本身。。。当我把文件内容放在开头而不是调用一个集中式的.js文件-everythings okhi james时,这是最好的:因为这是通常的做法。这取决于。您可以使用AMD之类的加载程序,您可以将脚本与browserify绑定,您可以创建一个
并设置
src
在放入页面后,您可以像现在一样使用jQuery
.load()
。它难以置信地依赖于用例。我想知道你为什么得到同步警告