用什么代替$document.ready;?

问题描述

| 因此,我正在使用jquery和我编写的一些插件。 我在$(document).ready(function(){})块中进行所有初始化,但是,当整个DOM已加载并准备使用时,将执行此初始化。 然而,这将花费很长时间。服务器负载时。或者,也许用户页面的其余部分尚未加载时单击了已加载的按钮(因此,document.ready()尚未执行),在这种情况下它什么也不做。 因此,如果我希望在页面的相关部分被加载之后立即执行代码,而不是等待整个页面被加载,该怎么办? 我知道在此js操作的html后面放置内联代码可以解决问题,但是如果该代码使用尚未加载的jQuery之类的库怎么办?     

解决方法

           我知道在此js操作的html后面放置内联代码可以解决问题,但是如果该代码使用尚未加载的jQuery之类的库怎么办? 那是唯一的方法。 HTML是从上到下解析的。因此,您可以期望包含的每个脚本在添加后都可以使用。     ,        无论如何,您的页面仍应在没有JavaScript的情况下仍能正常工作,因此,用户非常快速地单击按钮只会暂时降低体验。 话虽这么说,当HTML文档中的所有脚本均已加载时,DOM基本上已经准备就绪。由于您无法在载入JavaScript代码之前执行有意义的JavaScript,所以我将密切关注页面性能。发送HTML文档和2,3个JavaScript文件不应太慢。 您还可以使用老式的内联事件处理程序,例如
<button onclick=\"registerButtonClickEvent()\">
。但是,这将引入一个复杂的,可能有错误的,难以测试的临时事件保持层。     ,        如果您的
<script src=\"jquery-whatever.js>
行在HTML中的第一个clickable元素之前,则可以确保将在用户有任何有用的单击之前加载并运行jquery库。 只是不向脚本元素添加异步或延迟属性。     ,        不是所有的html元素都会触发onload事件,因此您不得不等待窗口加载。加载jQuery无关紧要,因为它必须等待文档准备就绪。加载jQuery以及文档其余部分所需的总时间将是相同的。