我正在构建一个新的AJAX驱动的网站,其中包含不同的部分.每个部分都需要一组新的Javascript函数才能运行.我不想在开始时加载每个脚本,因为可能会有很多.
有没有办法来加载使用AJAX的新脚本,并删除旧的(以确保有类似的变量名或函数签名不存在兼容性问题).
谢谢
编辑 - JQuery很好,它不一定是旧学校的Javascript
三件事:
1)是的,您可以加载新脚本.您甚至不需要XHR意义上的AJAX - 只需动态地在页面中包含脚本标记即可.jQuery为这样的事情提供$ .getScript(),或者你可以简单地创建一个脚本元素并将其附加到文档的头部.如果你谷歌它有很多例子.
2)关于删除旧(和冲突等).假设您可以控制这些函数名称,只需将它们命名为:
window.myapp = {};
window.myapp.mysection = {};
window.myapp.myothersection = {};
window.myapp.mysection.myfunction = function(){}
Run Code Online (Sandbox Code Playgroud)
然后你不必担心冲突.
3)注意这一点.按需加载所有这些脚本的开销可能不仅仅是压缩和加载整个事物.
jQuery使它非常简单.
$.getScript('myscript.js', function() {
console.debug('Script loaded.');
});
Run Code Online (Sandbox Code Playgroud)
如果你不能使用jQuery,那么还需要写几行.
var head = document.getElementByTagName('head')[0],
script = document.createElement('script');
script.src = 'myscript.js';
head.appendChild(script);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9095 次 |
| 最近记录: |