首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过ajax加载JavaScript的良好实践方法

通过ajax加载JavaScript的良好实践方法
EN

Stack Overflow用户
提问于 2010-07-16 01:54:45
回答 3查看 4.9K关注 0票数 5

免责声明:我对AJAX相当陌生!

我已经查看过了,我不确定使用哪个方法来使用ajax加载javascript。

我使用ajax请求页面,每个页面都需要自己的6-10个简短方法。这些页面总共可能有5-6页,所以35+方法的总数大约是5-6。

我更喜欢访问必要的javascript,因为每个页面都需要加载它。

我见过几种方法,我不确定哪一种最适合我的需要:

  1. 在头中包含一个空脚本元素,并通过以下方法操作src属性。
  2. 通过以下方式创建一个新的脚本元素。DOM并将其附加到document.body (这听起来与#1相同)。
  3. jQuery(我已经在使用)有一个ajax getScript()方法。
  4. 我还没有读过关于它的任何内容,但是我可以只包含一个脚本元素作为ajax响应的一部分吗?

由于我对ajax和web开发还不熟悉,所以我对每种方法的起起落落以及我错过的任何方法都很好奇。

需要考虑的一些问题是:每次发出ajax请求时,都使用缓存的副本-Will,或者脚本会下载。注意,脚本将是静态的。-Browser兼容性我使用Chrome,但是这个应用程序将用于IE >= 7和火狐的不同版本。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-16 02:02:36

在jQuery环境中,我会使用getscript()。您对缓存的好奇是正确的-- getscript包含了一个破坏缓存的特性(主要是为了击败咄咄逼人的IE缓存而设计的,当然在其他情况下也很有用)。您可以执行类似于非缓存破坏的getscript,如下所示:

代码语言:javascript
复制
$.ajax({
    cache: true,
    dataType: "script",
    url: "your_js_file.js",
    success: yourFunction
});
票数 6
EN

Stack Overflow用户

发布于 2010-07-16 04:35:47

由于这里的所有其他答案都只是说“使用jquery”,而没有任何进一步的信息/解释/理由,因此可能值得实际查看您提到的其他选项。

  • Option#1可能有点复杂,因为它要求您等到一个脚本下载并运行后再获取下一个脚本(因为您只有一个脚本element).
  • Option#2更好,因为您可以在第一个脚本元素完成下载之前将第二个脚本元素附加到DOM中,而不会影响前面每个人推荐的download/execution.
  • Option#3 )。如果您是在jQuery环境中,并且已经为其他用途加载了(相当大的) jQuery库,那么就可以了--仅为此加载它显然是多余的。值得注意的是,$.getScript()$.ajax()都使用eval()来执行脚本。在这种情况下,code.
  • Option#4isn't并不是“邪恶”的,因为它是一个可信任的源,但在我的经验中,它有时会稍微困难一些,以调试-ed()-ed-ed可能的afaik.
  • Option#5,尼克·克雷弗在第一个OP注释中建议使用tbh --如果脚本是静态的,缓存将比多个eval()请求更有效。如果您特别关心带宽:http://www.html5rocks.com/tutorials/appcache/beginner/

,您也可以考虑使用cache.manifest进行积极的缓存

票数 1
EN

Stack Overflow用户

发布于 2010-07-16 02:01:20

getScript一起去。它基本上与第二种方法相同,但您不必担心如何在各种浏览器(主要是IE)中侦听加载。

就DOM而言,AJAX响应只是文本。除非您以某种方式将其插入DOM中,否则不会有任何效果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3261408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档