是否可以使用AJAX加载新的Javascript文件?

Nic*_*unt 3 javascript ajax

我正在构建一个新的AJAX驱动的网站,其中包含不同的部分.每个部分都需要一组新的Javascript函数才能运行.我不想在开始时加载每个脚本,因为可能会有很多.

有没有办法来加载使用AJAX的新脚本,并删除旧的(以确保有类似的变量名或函数签名不存在兼容性问题).

谢谢

编辑 - JQuery很好,它不一定是旧学校的Javascript

jve*_*ema 8

三件事:

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)注意这一点.按需加载所有这些脚本的开销可能不仅仅是压缩和加载整个事物.


scu*_*ker 5

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)

  • `getElementByTagName` 应该是 `getElementsByTagName` (3认同)