- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
据我了解:
$(document).ready()
在整个 html 被解析但令我惊讶的是,以下工作出乎意料地:
<html>
<head>
</head>
<body>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h1>This should show !</h1>
<script>
$(document).ready(function() {
// Intentional infinite loop
for(var i=0; i<100; i++) {
i--;
}
});
</script>
<h1>This should *not* show !</h1>
</body>
</html>
在执行上面的代码时,它会进入无限循环并出现空白屏幕。
在进入无限循环之前,预计会在屏幕上看到 This should show !。
更新
更新2
css
上呈现 block (评论?)更新3
这是怎么回事??
最佳答案
如果您阅读 jQuery 文档以准备就绪,则应注意 In most cases, the script can be run as soon as the DOM hierarchy has been fully constructed.
我从中得出的结论行是,这并不一定意味着页面会显示。因此,即使您没有任何 css
代码,也不意味着您的文档会显示。
这里是一个 StackOverflow 问题的链接,该问题很好地解释了这一点:window.onload vs $(document).ready()
这是一个描述整个页面呈现过程的页面链接:http://friendlybit.com/css/rendering-a-web-page-step-by-step/
如果您注意到上面链接中的第 18 步,在加载所有 HTML 和 CSS 并执行 Javascript 之后,页面就会实际打印出来。以下 StackOverflow 问题包含进一步说明这一点的良好链接:Describe the page rendering process in a browser?
进一步说明(响应更新 3):
这是我对 friendlybit 文章的总结:
document.ready()
,Javascript 在里面执行。这里是一个 JSFiddle,显示了它的工作原理(您需要打开控制台才能看到它的工作原理):http://jsfiddle.net/aLbmB/
JSFiddle 向您展示了两个 header 元素在执行 Javascript 之前被解析。如果将 for 循环中的代码更改为以下内容:
$("#header2").text($("#header2).text() + "----");
i--;
您会看到文本从未呈现,这很有可能表明 Javascript 正在执行,因此您永远不会真正进入页面呈现部分。另一个很好的例子是当您通过 jQuery 从数据库中提取数据并等待它全部加载时。数据集越大,页面加载所需的时间就越长(即使 HTML 代码已经存在)。
我从逻辑上考虑这个问题的方式是,在对它们执行任何 Javascript 之前,您首先要很好地设置所有值。然后你执行 Javascript,一旦一切都准备就绪,你就可以让你的用户查看你的成品。当然,当您不使用 document.ready()
时情况并非如此,但我想权衡速度与可预测性(在执行中)。
额外说明(由 lazertyuiopl 提供):
“您可以使用 alert() 触发已解析元素的绘制”
提出了一个很好的观点。如果这样做了,那么看起来好像每个元素都在一次绘制一个,从上到下。我建议检查这个 JSFiddle:http://jsfiddle.net/K9kG8/7/
加载后再次运行它,您将看到我相信 Yugal Jindle 期望的结果。
补充:我认为这个问题不是重复的,而是更多的问题可以通过另一个问题的答案来澄清。换句话说,一个具体的例子。
关于javascript - $(document). 什么时候准备好 DOM 树解析和渲染树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24751153/
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
Polymer的light DOM和local DOM有什么区别?来自文档(1): The DOM that an element creates and manages is called its
当内容添加到网页时,我需要触发一个 Action 。更新可能具有不同的性质(例如 AJAX、延迟脚本、用户操作)并且不受我的控制。 我想使用 DOM 突变事件,但它们并非在所有浏览器中都可用。是否有为
我刚遇到一个有趣的情况,我有一个提交 放置在 内的 native 自定义元素的 Shadow DOM 内. Select #shadow-root ...
假设有一个滚动列表,当我插入一些新的 DOM 附加到当前 dom 时,它工作正常。上拉 但是如果我之前插入一些新的 DOM,新的 DOM 将在视口(viewport)中,而旧的 DOM 将被下推。下拉
在我的项目中实现 Shadow DOM 是否会使它们像 React 使用的虚拟 DOM 一样更快? 最佳答案 它们是不同用途的不同事物,因此比较性能没有意义。 虚拟 DOM 虚拟 DOM 旨在避免对
在我的页面内容上,我将多张卡片组织成网格 __________________ | ____ ____ | | | | | | | | | | | |
是否可以在浏览器中看到(调试)从 DOM 元素触发的自定义事件? 假设我想查看 Bootstrap Collapse 的哪个特定元素触发了 show.bs.collapse event ,我能以某种方
我正在生成用于客户端的 XPaths 服务器端,我很困惑为什么在 DOM 中找不到表路径(即 td 中的内容)。 事实证明,现代浏览器(至少是 Chrome 和 Firefox)插入了 tbody在文
是否可以检索文本节点的几何位置(即从父元素、页面等的顶部/左侧偏移量)? 最佳答案 不是直接的。 TextNode 没有用于测量视口(viewport)定位的原始 IE 偏移*(和类似的)扩展。 仅在
以下语句中的 DOM 元素的含义是什么? Statement #1 You can add multiple classes to a single DOM element. Statement #2
有没有办法让 firebug(或任何其他浏览器,或使用任何其他工具)阻止任何 dom 操作的发生?有时布局调试充满悬停事件的屏幕是不可能的,因为元素可能会消失,并且您看不到它们的复合布局。 最佳答案
我需要在html文档中搜索 text here 然后输出完整的节点路径(CSS或XPATH) 例如 html > body > div class ="something" > table > tr
这是我的一个页面的典型加载时间如何拆分为:- Domain Lookup 0 0 % Connect 134 .3% Request
我的 .on() 工作时遇到一些问题。我的网站是here . 如果你看看 www.eliteweb-creation.co.uk/dev/js/nav.js,我正在 mouseenter 和 mous
我是 Javascript 的新手,负责将我们产品的 UI 从 YUI2 迁移到 YUI3。看起来哪里都没有迁移指南,所以我现在正在浏览互联网帖子和 yui 文档。 在我的全局范围内,我临时添加了类似
我想和实习生一起测试一些 DOM 相关的东西,不需要特定的固定装置,只是一般的 DOM 东西,比如我改变了 Element.prototype。这是否需要通过本地 Selenium 服务器(或 sau
我是 HTML 和 HTML5 的初学者。 当我阅读以下内容时 link ,我找到了术语 DOM 和 DOM API。我通读了维基百科,但无法理解其背后的全部思想。 谁能给我解释一下: 文档对象模型
我有两个主要问题。 Object 之类的扩展是否算数? 什么是 DOM 包装? http://perfectionkills.com/whats-wrong-with-extending-the-do
对不起查询,原型(prototype),雅虎 YUI,道场在考虑小的时候不吸引我。我想要一个模块化的库,代码尽可能小,最多 20Kb [un compressed] 是我所期望的。应该提供 Dom 操
我是一名优秀的程序员,十分优秀!