我正在开发一个 javascript 密集型用户界面应用程序。(至少它对我来说是密集的,这是我第一个严肃的 javascript 项目)。
每当 adiv
翻转或mouseout
. 例如,有一些divs
是可拖动的对象,因此当它们被mouseover
编辑时,光标必须看起来准备好移动。但是我的界面太慢了,以至于我的老板认为我的代码不起作用,而事实上它确实如此,但它只是很慢,因此用户有时必须等待 2-3 秒才能使光标看起来像预期的那样,或者等待div
看起来像预期的那样。只是一个例子。我的代码如下所示,由于我的公司对此拥有版权,因此我无法完全或正确地复制它,但只是为了让我清楚地了解我的工作方式:
$.fn.extend({
mouseoverBox: function() {
return this.each(function() {
var $this = $(this);
if(!$this.hasClass('ready'))
{ if($this.hasClass('activated'))
{
$this.removeClass('activated');
}
$this.addClass('ready');
}
var img_id = $this.children('.theimg').attr('id');
//someitem.children('somechildren').remove();
//someitem.append(somemenu div)
//$this.draggable();
//$this.resizable();
if($this.hasClass('unlocked'))
{
$this.draggable( "option", "disabled", false );
$this.resizable( "option", "disabled", false );
}
$this.bindUnlock();
});
}
// end mouseoverBox
});
现在这只是 mouseoverBox 函数,它的触发方式类似于myBox.mouseoverBox()
. 在鼠标悬停事件上。然后当然是调用这个插件,bindUnlock()
它具有简单的操作,例如更改类和向菜单添加类。此外,在任何鼠标悬停之前,通常都会出现mouseout
另一个div
...所以你可以看到有很多事情正在发生。不过,任何时候通常不会有超过 10 个互动divs
。如何优化这种代码?我没有给出每一个具体的信息,但相信我,大部分相关内容几乎就是这样。
我已经压缩了我的 javascript、css、图像和字体。我还尝试使用 Yahoo Compressor 进行压缩,但它实际上使我的一个文件膨胀而不是压缩它。