小编典典

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

javascript

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

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

阅读 289

收藏
2020-05-01

共1个答案

小编典典

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

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

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

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

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

2020-05-01