Zar*_*ani 3 javascript ajax jquery
将此js添加到我的页面:
$("#divExample").append("<script type='text\/javascript' src='\/scripts\/test_code.js'><\/script>");
Run Code Online (Sandbox Code Playgroud)
导致请求:
http://.../scripts/test_code.js?_=1395691742415
Run Code Online (Sandbox Code Playgroud)
我需要消除查询字符串,因为它阻止js文件被缓存.我最好的猜测是,这在某种程度上与jQuery ajax有关,它在执行某些类型的调用时会附加相同类型的查询字符串(例如jsonp).
关于我为什么这样做的背景:我需要推迟脚本加载(实际上是更大的js块的一部分),直到页面就绪事件完成之后.以上只是一个显示相同症状的减少样本.
目前正在使用jQuery 1.8.3,但我真的希望答案不包括升级,因为这会破坏依赖项.
将jQuery缓存设置为全局true以防止这种情况发生.
$.ajaxSetup({
cache: true
});
Run Code Online (Sandbox Code Playgroud)
虽然这看起来只是针对ajax的配置,但它会影响<script>你正在使用的标签.
如果您不想将全局应用于所有ajax请求,则可以使用普通Javascript(无jQuery)来执行此操作:
var s = document.createElement('script');
s.type = 'text/javascript';
s.src = 'test.js';
document.getElementById("divExample").appendChild(s);
Run Code Online (Sandbox Code Playgroud)
第三个选项是你可以$.ajax用来导入脚本,如下所示:
$.ajax({
url : 'test.js',
type : 'script',
cache : true,
success : function(){
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
506 次 |
| 最近记录: |