我有一个使用瘦客户端(bosanova 终端)作为用户前端的网络应用程序。我注意到瘦客户端和 PC 之间的 JavaScript 存在一些性能差异。终端运行的是嵌入了 IE6 的 windows XP,我所指的页面是利用原型 JS 框架对表单元素进行一些相当简单的验证。
例如,以下是我用来确保填充必填字段的内容。
还有两个类似的 .numeric 和 .alaphanumeric 可以相应地测试并推送错误以阻止表单被提交。
$$( '.requiredfield' ).each( function ( elem ){
if ( ( $( elem ).value.length == 0 ) || ( $( elem ).value == null ) ) {
$( elem ).addClassName( "nonvalid" );
$( elem ).siblings().first().addClassName( "error" );
requiredErrors.push( $( elem ) );
}
});
我看到的问题是 Firefox 或 IE 中的 PC 页面上具有 5-20 个字段的表单可能需要半秒才能处理比没有验证的时间更长。然而,在终端上,运行验证的时间比没有验证的相同页面多 15-25 秒。正如我相信我已经提到的,我已经在 PC 上的 IE6 中对此进行了测试,并且没有看到性能损失。给 Bosanova 的电话让我升级了终端中的内存,我在这篇文章之前就这样做了,结果没有改变。
我可以更改脚本,因此我只遍历表单字段一次并处理 .required .numeric .alphanumeric ,我确信它会有所帮助。就像现在一样,PC 和终端(瘦客户端)之间的性能差异很大。我很想知道为什么。
如果有人有任何故障排除经验或知道为什么原型/javascript会在终端上遭受这样的性能损失,我将非常感谢一些提示。
更新:>>>>>>>>>>>>>>>>>>
我一直在测试和研究这个问题,并认为我会分享这个。我们昨天收到了一个更新的终端,我加载并测试了它。运行 IE6 的新终端与任何其他浏览器一样完美无缺。当然它比 PC 慢一点,因为 1. 它运行 IE6 和 2. 它是一个瘦客户端,但速度差异在数百秒与运行相同脚本的 10-50 秒差异。2 种不同瘦客户端的物理规格并不相同,1.2 ghz(旧)与 1.6 ghz(新)内存相同,HD/DOM 为 512MB(旧)与 1gig(新)。仍然无法确定旧终端中发生的事情,但看起来与终端的特定型号/修订版有关。
更新:>>>>>>>>>>>>>>>>>>