当前位置: 首页 > 面试题库 >

$(document).ready(function(){}); vs脚本在页面底部

许沛
2023-03-14
问题内容

在页面底部编写脚本并在其中编写脚本有什么区别/优点/缺点?

$(document).ready(function(){});

问题答案:

无论哪种方式,DOM本身都几乎可以为您准备好进行操作在从Google阅读此内容之前,我对此一直感到不安)。如果使用页面末尾技巧,您的代码可能会被一点一点,一点点地调用,但是没关系。但更重要的是,此选择与将JavaScript链接到页面的位置有关。

如果您将script标签包含在中head并依赖ready,则浏览器会在您script向用户显示任何内容之前遇到您的标签。在正常情况下,浏览器会停止运行,然后继续下载您的脚本,启动JavaScript解释器,然后将脚本交给它,然后等待解释器处理脚本(然后jQuery以各种方式监视为DOM准​​备就绪)。(我说“在正常情况下”,因为某些浏览器支持标记上的asyncdefer属性script。)

如果您scriptbody元素的末尾添加标签,则浏览器将不会执行所有操作,直到您的页面已经大部分显示给用户为止。这可以缩短页面的加载时间。

因此,为了获得最佳的感知加载时间,请将您的脚本放在页面底部。如果您要这样做,则无需使用ready,尽管您当然可以选择使用。

但是,这样做有一个代价:您需要确保用户可以看到的事物已经准备好与之交互。通过将下载时间移动到页面主要显示后的位置,可以增加用户在加载脚本之前开始与页面进行交互的可能性。这是将script标签放在末尾的反论点之一。通常这不是问题,但是您必须查看页面以查看是否存在问题,如果是,则要如何处理。(您可以在中放置一个小的
内联_ script元素,以head设置文档范围的事件处理程序来解决此问题。这样,您可以缩短加载时间,但是 如果
他们尝试过早地做某事,您可以告诉他们,或者更好地,将他们想做的事情排入队列,并在准备好完整脚本后再做。)



 类似资料:
  • 问题内容: vs 和我应该以表格或新方式书写的区别是什么? 如果我加载了Google api是更好的方法?还是同一件事? 我也看到人们使用 有人可以帮我,我迷路了。当我不知道所写的代码时,我会烦扰我。我想我应该阅读一下图书馆。全部都定义为同一件事吗? 问题答案: 两种方式是等效的,我个人更喜欢第二种方式,这只是准备文档的捷径。 关于构造,您实际上不需要使用运算符,如果不需要,jQuery会在内部使

  • 这是我的代码,我想我的页脚是静态的在我的html页面底部,我如何修复它?

  • 问题内容: 页面上有多个页面不好吗?我有一个网站,在不同的时间加载不同的内容。我解雇了里面的那些部分回发功能,但是我一次在页面上有大约4或5。这是不好的做法吗?具体来说,会引起性能问题吗? 问题答案: 这个答案不再重要。 请查看下面的其他文章,以获得更多最新的jQuery $ .ready()影响。这个职位超过3岁。 请参阅:http://jsperf.com/docready/11 答案是不!您

  • 问题内容: 是以下简写吗? 我看到这种模式使用了很多,但是我找不到任何引用。如果它是的简写,是否有任何特定原因可能不起作用?在我的测试中,它似乎总是在ready事件之前触发。 问题答案: 的简写是(函数在哪里)。看这里。 您问题中的代码与无关。相反,它是一个以jQuery对象作为参数的立即调用的函数表达式(IIFE)。其目的是将变量的范围至少限制在其自己的块中,以免引起冲突。您通常会看到jQuer

  • 问题内容: 题: 如果我链接两个都带有函数的JavaScript文件,会发生什么情况?一个会覆盖另一个吗?还是两者都被叫? 例如, jquery1.js: jquery2.js: 我相信最好的方法是将两个调用简单地合并为一个,但是在我的情况下这不太可能。 问题答案: 所有人都会被执行, 并且在首次调用的基础上运行!! 演示如您所见,它们不会互相替换 我还要提一件事 代替这个 您可以使用此快捷方式

  • 问题内容: 我正在使用jQuery在UpdatePanel中的元素上附加一些鼠标悬停效果。事件绑定在中。例如: 当然,这在第一次加载页面时效果很好,但是当UpdatePanel执行部分页面更新时,它不会运行,并且鼠标悬停效果在UpdatePanel内部不再起作用。 不仅在首页加载时,而且在每次UpdatePanel触发部分页面更新时,建议在jQuery中进行接线的推荐方法是什么?我应该使用ASP.