JavaScript的扩展程度如何?

Ree*_*rds 4 javascript browser performance jquery mootools

我正在使用iCarousel处理这个旋转木马的事情.使用MooTools,它可以很好地处理一些图像.然而,当我添加70张图片(每张约30k)时,它停止了工作.花了一些时间在iCarousel的代码中探索它看起来相当不错和稳定.所以这让我思考:脚本固有的问题(在overflow:hiddendiv中设置div的动画),MooTools,Ubuntu上的Firefox还是JavaScript无法处理太多?如果是这样,多少钱太多了?

我想这很难说,但是知道什么时候JavaScript会变得迟钝和无法使用,最好是在开始开发之前.

Pao*_*ino 12

看一下示例代码,我注意到这样的事情:

 $("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)}); 
Run Code Online (Sandbox Code Playgroud)

如果您有70个图像(因此我假设有70个缩略图),这将为DOM连接70个事件.这实际上不是必要的,很可能是您所观察到的"缓慢"行为的原因.我建议你阅读事件授权以及为什么这是一件好事.:)如果你正在使用jQuery,这很容易通过使用该live函数完成,我想mootools会有类似的东西.但是,如果没有,那么装配相当容易.我在这里这里讨论了过去的事件授权.

  • 很好的答案.是的,这将是使用jQuery的"实时"事件的好时机. (4认同)
  • @xandy:做$(选择器).click(); 将使jQuery找到匹配选择器的每个元素,并为它创建一个事件.所以,是的,如果有100个带有.thumbs类的元素,$('.thumbs').click()将绑定100次,这就是为什么live()非常棒的原因(虽然它获得了更多的代表)只是能够绑定到不存在的元素,我主要用于事件委托) (2认同)