我有一个长期运行的报告,并希望在生成时向用户显示等待微调器。我已经完成了这项工作,但不确定我是否以最好或正确的方式做这件事。
这是使用 ColdFusion,但我猜它可能是任何语言。在页面的顶部,我有一些显示等待微调器的 Javascript (jQuery),还有一个 documentReady 处理程序,我可以在其中取下微调器。我刷新输出(如果重要的话),然后其余代码处理报告内容。这从来没有渲染微调器,我推测,即使我在服务器上刷新东西,也会发生一些缓冲,直到为时已晚,浏览器才看到微调器代码。所以,我在刷新之前添加了一个循环,吐出几百行 HTML 注释。在微调了行数之后,就成功了。我当时认为其他网站也是如此。
但是:今天,当我看到我的另一个页面逐行吐出长时间运行的作业的状态时,我突然想到,该页面在每一行之后刷新,并且浏览器根据需要逐步呈现。这与我上面的结论不符,现在我不知道规则是什么。有没有可预测的方法来做到这一点?是否因浏览器而异?
澄清:我很欣赏试图解释执行等待微调器的正确方法的答案,但我只是使用等待微调器作为示例来说明我的真正问题:是否有可靠的方法来预测浏览器何时开始呈现HTML 因为它通过网络流式传输给他们?通过观察很明显,浏览器不会等待 /html 标签开始工作。这个问题不一定与 Javascript 有任何关系。例如,我描述的显示状态的第二页是纯 HTML。