相关疑难解决方法(0)

$(document).ready()什么时候开火?

这个问题的评论让我想到了什么.什么时候该$(document).ready()功能开火?显而易见的答案是"当文件准备就绪时",但究竟是什么时候?

例如,如果我在PHP继续执行时打开输出缓冲并刷新输出,那么不会将输出发送到浏览器吗?那么,在PHP脚本执行完毕之前,文档是否可以准备就绪,或者事件是否等到请求完成之后?


编辑:

响应似乎基本上同意当客户认为它准备就绪时事件会发生.

为了更好地理解(我本来应该首先做的),我只是设置了一个测试:

<?php ob_start(); ?>
<html>
<head>
    <script type="text/javascript" src="lib/js/jquery-1.7.1.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            alert("READY");
        });
    </script>
</head>
<body>
<?php
    ob_flush();
    for ($i=0; $i<999999; $i++) {
        echo "HELLO$i\n";
        ob_flush();
    }
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

结果是在这个例子中,内容立即开始在页面上显示,但是在循环完成之前警报没有发生,或者脚本超时(30秒).

为了取决于您使用的浏览器,我尝试在我的循环中插入:

if ($i == 99) {
    echo "</body></html>";
}
Run Code Online (Sandbox Code Playgroud)

Chrome似乎通过将这些标签放在页面的末尾来自动纠正它(如Web开发检查器中所示).查看页面的来源显示它在中间,我在那里回应它.

javascript php jquery events

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

events ×1

javascript ×1

jquery ×1

php ×1