簡體   English   中英

如何減少JavaScript事件

[英]How to minimize javascript events

我需要減少Web應用程序頁面上的javascript事件的數量。 將它們遷移到HTML元素上的onclick屬性會更好嗎?

例如

 <input ... onclick="myJavascript"/> 

相對於

 YAHOO.util.Event.addListener(element, 'click', handleElementClick, eventObject);

問題是Javascript事件是我在Javascript Profiler中看到的最占用資源的代碼(我已經使用了Developer工具和Firebug)。 我想減少負載,我想知道這樣做的最佳方法是什么。

更好的解決方案是使用事件委派,該事件委派一個事件。 您只需要嗅探元素即可確定是否需要采取行動。 這被認為是改善javascript事件的性能並且不污染DOM的最佳方法。 這種方法也適用於使用Ajax添加到頁面的DOM元素,這意味着您無需將事件重新綁定到新元素:

document.onclick = function(e) {
    var event = e || window.event;
    var target = event.target || event.srcElement;

    if (target === myElement) {
        // do something here


}

一般來說,您應該將事件代碼保留在JavaScript代碼中,而不是將其放入HTML中。 這樣可以使將來的調試更加容易,因為它將所有不同的邏輯部分保留在單獨的位置。 通常認為在HTML中具有所有結構,在CSS中具有所有表示形式以及在JavaScript中具有所有客戶端功能是合乎需要的。 混合不同的層並不一定很糟糕,通常只是不必要的復雜性。

但是,從一般意義上講,最好的方法是委托方法,該方法是在我可以鍵入它之前發布的。

如果您想附加多個處理程序,我認為第二種方法更好,並且有更多選項,取決於您使用的框架

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM