jQuery 1.5.1 vs. Prototype导致FireFox中的无响应脚本

时间:2011-03-09 14:31:40

标签: jquery prototypejs

升级到jQuery 1.5.1后,我在FireFox中收到无响应脚本警告。

没有其他任何改变,只有jQuery从1.4.2升级到1.5.1。如果我调试脚本,并看到堆栈跟踪,我可以看到导致无响应脚本的代码非常简单:

$("div.activityItems[gid='-1']").children().attr("disabled", "disabled")

有没有其他人遇到类似的问题,关于jQuery 1.5.1?

更新

我已将冲突本地化为JQuery 1.5.1和Prototype之间。将Prototype升级到v.1.7会导致明显的冲突:

$(document.body).keydown is not a function
$.fn is undefined

有关解决方法的任何想法吗?

2 个答案:

答案 0 :(得分:0)

堆栈跟踪在类似的情况下并不真正有用,因为“无响应的脚本”只意味着JavaScript运行了很长时间,从而导致浏览器无响应。

因此,您需要检查代码是否存在长循环或无限循环,过多的递归深度以及可能需要很长时间才能执行的类似事情。

答案 1 :(得分:0)

重新更新:

请记住,两个库都定义了函数$。你在使用jQueries noConflict()吗?我不熟悉Prototype,所以你应该检查它是否有类似的功能。

它可能显而易见且愚蠢,但无论如何我都会说:不要同时使用这两个库。它们基本上具有相同的功能,因此您不仅要求解决问题,而且如果同时使用这两种功能,也会使页面膨胀。