2016-06-25 34 views
0

假設我在HTML頁面上有數百個提交按鈕。當點擊提交按鈕時,它會調用一個名爲TiedotNettiin的JavaScript函數,它使用jQuery.post()向Web服務器發送一些信息。調用addEventListener數百次

在HTML頁面上使用JavaScript及其addEventListener幾百次會是一個好主意嗎?這是否需要很多系統資源?

或者更好地設置間隔並運行我的JavaScript函數TiedotNettiin,比方說,每10秒鐘一次?它將等待10秒鐘,在10秒內收集所有點擊,製作數組,最後將包含所有新信息的數組發送到服務器。這會每隔10秒發生一次,而不是每次提交按鈕點擊。

有更好的選擇嗎?

感謝您的意見和想法。

+1

使用事件代表團。選擇一個包含所有提交按鈕的元素,並調用'container.addEventListener(「click」,function(e){'...'});''。用'e'你可以訪問'e.target'來查看哪個按鈕被點擊過。 – Xufox

+0

您可以爲提交表單的元素提供相同的'className',使用單個事件偵聽器'$(「。submit」)。click(){// do stuff})' – guest271314

+0

您似乎在問是否應該聯繫服務器每次點擊或聚合點擊羣組。兩種方式都需要您瞭解點擊次數,因此事件偵聽器的數量將相同。 – Oriol

回答

1

當一個委託偵聽器足夠時,不需要數百個事件偵聽器。

確保所有元素都具有相同的類,做

$(document).on('click', '.button-class', function(event){ 
    event.preventDefault(); 
    /* "this" is element event occured on */ 
    // do ajax with data relevant to this button 

}) 
相關問題