我如何估计浏览器';什么是Javascript功能?

我如何估计浏览器';什么是Javascript功能?,javascript,browser,Javascript,Browser,我提供了一个网页,它让客户机在点击后立即执行大量Javascript工作。工作量与内容量成正比,内容量变化很大 在有大量内容的情况下,这项工作可能需要很长时间,客户端会向其用户发送一条“无响应脚本-是否要取消?”消息。在几乎没有任何内容的情况下,工作一眨眼就结束了 我提供了一个功能,在内容大于某个值X的情况下,我会向用户提供一条“这可能需要一段时间”的消息,该消息会在艰苦工作开始前显示 麻烦在于为X选择一个好的值,因为对于这个特定的页面,Chrome比Firefox快得多,Firefox比IE快

我提供了一个网页,它让客户机在点击后立即执行大量Javascript工作。工作量与内容量成正比,内容量变化很大

在有大量内容的情况下,这项工作可能需要很长时间,客户端会向其用户发送一条“无响应脚本-是否要取消?”消息。在几乎没有任何内容的情况下,工作一眨眼就结束了

我提供了一个功能,在内容大于某个值X的情况下,我会向用户提供一条“这可能需要一段时间”的消息,该消息会在艰苦工作开始前显示

麻烦在于为X选择一个好的值,因为对于这个特定的页面,Chrome比Firefox快得多,Firefox比IE快得多。我想在适当的时候警告所有用户,但避免在只有100毫秒的时间里发布消息,因为这会分散用户的注意力。换句话说,我希望X的值也取决于浏览器的Javascript功能


那么,有没有人能很好地了解浏览器的功能呢?我目前正在考虑明确关闭浏览器,但这似乎有问题,我想还涉及其他因素。

这可能不是你想去的地方,但你知道为什么javascript会花这么长时间吗?是通过网络下载大量内容,还是浏览器上的实际格式化/搅动是缓慢的


您甚至可以以增量方式执行某些操作,这样虽然整个shebang需要很长时间,但用户可以看到内容“构建”,因此不必受到警告。

这可能不是您想要做的事情,但您知道javascript为什么需要这么长时间吗?是通过网络下载大量内容,还是浏览器上的实际格式化/搅动是缓慢的


您甚至可以以增量方式执行某些操作,这样,虽然整个shebang需要很长时间,但用户可以看到内容“构建”,因此不必受到警告。

如果数据是相对同质的,一种方法可能是使用一个helper函数来检查数据的特定子集经过多长时间,并保守估计整个拍摄过程需要多长时间


从那里,决定是否显示该消息。

如果数据相对同质,一种方法可能是使用一个helper函数来检查数据的特定子集经过多长时间,并保守估计整个集合需要多长时间


从那里,决定是否显示消息。

为什么不让用户决定X是什么?(例如,像那些“显示10 | 20 | 50 | 100”每个页面选择器)那么你根本不需要进行任何测量/猜测;您可以让他们做出最佳延迟/信息内容权衡。

为什么不让用户决定X是什么?(例如,像那些“显示10 | 20 | 50 | 100”每个页面选择器)那么你根本不需要进行任何测量/猜测;您可以让他们做出最佳延迟/信息内容权衡。

这有点误导;通常在讨论浏览器的JS功能时,它指的是浏览器的实际功能,例如它是否支持原生XMLHTTP?它支持ActiveX吗?等等

无论如何,无法可靠地推断浏览器的处理能力或速度。有人可能会认为,您可以运行一些简单的压力测试,计算结果并与过去的性能列表进行比较,以查看当前用户的浏览器排名,并可能使用此信息得出估计时间。这里的问题是,这些计算不仅会受到浏览器(或操作系统)中活动的影响;例如,您运行分析脚本,用户的AV扫描仪会启动,因为它是下午5点;通常需要2秒,20秒

有一件事要问你们自己:这个过程必须现在就进行吗?正如n8wrl和Beska所提到的,您可能需要编写自己的方法,将要完成的工作分解成块,然后使用setTimeout()之类的方法一次对它们进行操作。这将给引擎“喘息”的时间,从而有望避免“无响应脚本”警告。这些块中的每一块也可以用来更新进度条(或类似的),该进度条为用户提供一些工作正在完成的指示

或者你也可以像GMail一样,在窗口的一角闪烁一个非常小的红色“加载…”文本区域。有时它会在那里停留几秒钟,有时它在那里的时间不够长,无法阅读。其他时候它会闪烁几次。但是你知道当它做某事的时候

最后,在逐步“构建”页面方面,您可以检查Chrome新选项卡页面的来源。注意:您不能使用“查看源”查看此内容;相反,选择“javascript控制台”选项(在新选项卡页面上),然后查看那里的HTML源代码。应该有一条评论来解释他们的总体战略,比如:

<!-- This page is optimized for perceived performance. Our enemies are the time
 taken for the backend to generate our data, and the time taken to parse
 and render the starting HTML/CSS content of the page. This page is
 designed to let Chrome do both of those things in parallel.

 1. Defines temporary content callback functions
 2. Fires off requests for content (these can come back 20-150ms later)
 3. Defines basic functions (handlers)
 4. Renders a fast-parse hard-coded version of itself (this can take 20-50ms)
 5. Defines the full content-rendering functions

 If the requests for content come back before the content-rendering functions
 are defined, the data is held until those functions are defined. -->


我不确定这是否有帮助,但我认为这确实让我们深入了解了一些大公司如何应对这类挑战。

这有点误导;通常在讨论浏览器的JS功能时,它指的是浏览器的实际功能,例如它是否支持原生XMLHTTP?它支持ActiveX吗?等等

无论如何,无法可靠地推断浏览器的处理能力或速度。有人可能会认为,您可以运行一些简单的压力测试,计算结果并与过去的性能列表进行比较,以查看当前用户的浏览器排名,并可能使用此信息得出估计时间。这里的问题是,这些计算