我正在研究这个旋转木马,使用 iCarousel .使用 MooTools,它可以很好地处理一些图像。然而,当我添加 70 张图片(每张约 30k)时,它停止工作得很好。花了一些时间研究 iCarousel 的代码后,它看起来相当不错且稳定。所以这让我开始思考:问题是脚本固有的问题(它在 overflow:hidden
div 中激活 div)、MooTools、Ubuntu 上的 Firefox 还是 JavaScript 不能处理太多?如果是这样,多少算太多?
我想这很难说,但最好是在开始开发之前知道 JavaScript 何时会变得迟缓和无法使用。
最佳答案
查看示例代码,我注意到正在执行类似这样的操作:
$("thumb0").addEvent("click", function(event){new Event(event).stop();ex6Carousel.goTo(0)});
$("thumb1").addEvent("click", function(event){new Event(event).stop();ex6Carousel.goTo(1)});
$("thumb2").addEvent("click", function(event){new Event(event).stop();ex6Carousel.goTo(2)});
$("thumb3").addEvent("click", function(event){new Event(event).stop();ex6Carousel.goTo(3)});
$("thumb4").addEvent("click", function(event){new Event(event).stop();ex6Carousel.goTo(4)});
$("thumb5").addEvent("click", function(event){new Event(event).stop();ex6Carousel.goTo(5)});
$("thumb6").addEvent("click", function(event){new Event(event).stop();ex6Carousel.goTo(6)});
如果您有 70 张图片(我假设有 70 张缩略图),这会将 70 个事件连接到 DOM。这真的没有必要,很可能是您观察到的“迟钝”行为的原因。我建议您阅读有关事件委托(delegate)的内容以及为什么这是一件好事。 :) 如果您使用的是 jQuery,这很容易通过使用 live
来完成。功能,我想 mootools 会有类似的东西。但是,如果没有,则很容易安装。我过去讨论过事件委托(delegate)here和 here .
关于javascript - JavaScript 的扩展性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1175466/