首页 新闻 搜索 专区 学院

document.readState相关问题

0
悬赏园豆:20 [已解决问题] 解决于 2016-02-25 10:54

请教一下各位关于document.readyState的问题。

下面是我的代码,当我第一次在vs中点击运行的时候 显示的是  interactive h1  interactive 

interactive complete

在此基础上,我又做了 两种 操作 ,一种是按F5刷新 ,显示的是 loading h1 loading

loading complete

如果我不是按F5刷新,而是点击地址栏,按回车,显示的是interactive h1  interactive 

interactive complete  和在vs中点一次点击运行的结果是一样的,我想问问为什么会出现这种情况

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script>
        alert(document.readyState)
        window.onload=function()
        {alert(document.readyState)}
    </script>
</head>
<body>
    <h1>Title</h1>
    <script>
        alert("h1")
    </script>
    <script>
        alert(document.readyState)
    </script>
    <h2>Title2</h2>
    <script>
        alert(document.readyState)
    </script>


</body>
</html>
Mr.He多多指教的主页 Mr.He多多指教 | 初学一级 | 园豆:139
提问于:2015-12-31 15:49
< >
分享
最佳答案
1

我没用vs  直接放在文本文档用  chrome 浏览的的   一直是

 loading h1 loading loading complete

按道理    loading h1 loading loading complete  这种提示是没有错误的,  在加载过程中  alert  函数运行的时候   页面还没有加载完成   故应是  loading

收获园豆:20
_Arnold | 小虾三级 |园豆:635 | 2015-12-31 16:03

loading函数运行的时候,页面时可以加载完成的,interactive的意思是文档完成解析,我觉得interactive更合理一些。因为在执行js代码的时候,浏览器的解析器是暂停工作的,所以解析工作是肯定没完成的,但是文档的加载的工作有可能已经完成了

Mr.He多多指教 | 园豆:139 (初学一级) | 2015-12-31 17:09

@Mr.He多多指教: 

http://www.jb51.net/web/108712.html  

你看下这篇文章,上面说js的下载过程是不能并行下载和解析(阻塞下载)的,也就是说,如果下载并解析的过程遇到js脚本,会停掉整个页面的下载和呈现,

 

 JS的加载
不能并行下载和解析(阻塞下载)
当 引用了JS的时候,浏览器发送1个jsrequest就会一直等待该request的返回。因为浏览器需要1个稳定的DOM树结构,而JS中很有可能有代 码直接改变了DOM树结构,比如使用 document.write 或 appendChild,甚至是直接使用的location.href进行跳转,浏览器为了防止出现JS修改DOM树,需要重新构建DOM树的情况,所以 就会阻塞其他的下载和呈现.

 

_Arnold | 园豆:635 (小虾三级) | 2015-12-31 17:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册