2012-03-28 536 views
0

我有被顯示在表tableRepriceResponseFiles使用的DataTable的插件數據的網頁。在這裏,我基本上在Javascript中做了以下兩件事。如何擺脫這個消息「此頁上的腳本導致您的web瀏覽器運行緩慢」

1.如果NoOfDays> 7,區分文本在紅色

2.Datatable分頁

在下面的代碼被顯示以下腳本錯誤信息。

停止運行此腳本? 「在這個頁面的腳本導致Web瀏覽器運行緩慢。如果繼續運行,您的計算機可能會變得unresponse。」

當我評論或者兩個以下的事情,那麼它不顯示該腳本錯誤信息。但我想將文本顏色更改爲紅色並應用分頁。

我想知道怎樣才能擺脫這個消息的?任何輸入是高度讚賞。

<script type="text/javascript"> 
$(document).ready(function() {  

//If the NoOfDays > 7, differentiate the text in Red color 
       $('#RepriceResponseFiles td.clsDays').each(function() { 
        if (parseInt($(this).text()) > 7) { 
         $(this).css("color", "red"); 
        } 
       }); 

       //Datatable Pagination 
       $('#RepriceResponseFiles').dataTable(
       { 
        "sPaginationType": "full_numbers", 
        "aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]], 
        "iDisplayLength": 100 
       }); 


}); 
</script> 
+1

昨天你不是問這個問題嗎?其中一條評論是「你的桌子有多大?」。如果您嘗試在長表上執行客戶端分頁和行着色,則會遇到此消息。如果表格足夠大(這裏沒有硬編碼),你應該考慮做這個服務器端。 CSS樣式應該可以通過在視圖模型中傳遞額外參數來輕鬆完成,並且會阻止JQuery在表中循環以應用樣式。 – Tommy 2012-03-28 17:18:16

+0

是的。我昨天問。現在我得到了答案!謝謝。我正在從ViewModel處理它。不知道如何將此標記爲答案! – Rita 2012-03-28 21:19:24

+0

看起來像......它還在。我想我必須做Serverside。 – Rita 2012-03-29 13:48:57

回答

1

處事客戶端可能是好的,但是這取決於你的桌子上,jQuery和相關插件的大小應用樣式,表格分頁和排序可能需要相當多的時間。在一張大桌子的大小上沒有「硬數字」。有些東西你可以嘗試:

  1. 你的申請應該很容易做服務器端的風格。將屬性添加到稱爲樣式的視圖模型中,並在循環查看模型時使用該屬性來設置行顏色。

  2. 尋呼的東西將更難實現服務器端(創建一個採取(int PageNumber, int Count)的動作方法。雖然有很多這樣的帖子,你應該看到你的頁面加載時間體面的性能增加如果腳本超時。Example Post 1Example Post 2(如果您正在使用MVC3,它看起來像有一個WebGrid that can take care of this for you,但我還沒有使用它,你需要做的看到一些跑腿的活兒,如果它會做正確的東西的你)

  3. 也許你使用的JQuery插件根本不是一個好的嗎?我不知道你在用什麼,但你可以和其他人一起玩,看看你是否有更好的表現。

爲點2的基本想法是這樣的:

public ActionResult GetPagedData(int pageNumber, int ItemCount){ 
    return PartialViewResult("MyGrid", 
    this.GetMyItems().skip((PageNumber -1) * ItemCount).Take(ItemCount)); 
} 

總體而言,JQuery的東西是非常好的,但對於大型數據集,你會得到很多更好的性能做分頁和排序服務器端。這是我認爲你的放緩來自的地方。這些JQuery插件的工作方式是,服務器發送整個數據集,JQuery根據您設置的選項顯示/隱藏行。通過執行此分頁服務器端,您只需將所需數據發送到客戶端以查看他們正在查看的數據頁面。這會導致從服務器發送的數據更少,並且應該消除您所看到的警告。您仍然可以使用AJAX請求來獲取下一頁/上一頁數據,以保持插件的AJAX-y感覺。

相關問題