2011-03-01 55 views
2

我一直在使用的jqGrid很長一段時間我的asp.net MVC應用程序jqGrid的觸發器(「reloadGrid」),導致IE顯示停止運行腳本對話框

所有今天突然的IE瀏覽器顯示的停止運行腳本對話說

A script on this page is causing your web browser to run slowly. If it continues to run, 
your computer might become unresponsive. 

我已經縮小到我試圖重新加載一些Ajax運行後的網格的代碼。

如果我採取了以下

$("#shippingscheduletable").jqGrid().trigger("reloadGrid"); 

它不顯示的對話框中,當我把它放回它的存在一次。 幾個月來這個應用程序沒有任何改變,它工作得很好。

我已經走過了jqgrid綁定的控制器動作,它運行得很好,它不會卡在任何循環或任何東西中。

它在任何其他瀏覽器中都不會顯示任何錯誤。有關如何解決它的任何想法?

+1

您是否偶然使用固定/特定的jQuery版本或「最新」時發生變化? – 2011-03-01 22:13:45

+0

你釘了它!我正在使用最新的。這是1.4.4。我強迫它成爲1.4.2,瞧起來工作得很好。把你的評論作爲答案,我會給你信用的。謝謝! – twal 2011-03-01 22:15:55

回答

3

reloadGrid正確的用法是

$("#shippingscheduletable").trigger("reloadGrid"); 

(見jqGrid documentation),而不是

$("#shippingscheduletable").jqGrid().trigger("reloadGrid"); 

更加複雜和少有記載的reloadGrid參數,你會發現the answer

+0

謝謝。使您建議的更改允許它與1.4.4一起使用。我以前的版本的工作方式很好,但不適用於1.4.4。 – twal 2011-03-01 22:58:05

+0

我也注意到,在某些事件中,在向近期版本中的某個元素添加功能時,IE速度會「降低」。好於我的回答,因爲它更直接地解決問題,而不是避免它:) – 2011-03-02 13:59:40

+0

@Mark Schultheiss&@twal:我同意你的意見。速度的最大問題在於以下幾點:1)一個不使用'gridview:true' 2)一個使用'afterInsertRow'這是邪惡的。 3)用'getDataIDs()'枚舉所有行,並使用'getCell','setCell'或'$('#'+ rowid)'修改每一行。我建議更快捷的方式[這裏](http://stackoverflow.com/questions/5010761/linking-from-a-column-value-in-jqgrid-to-a-new-page-using-get/5017528#5017528 ) – Oleg 2011-03-02 14:25:40

1

您是偶然使用固定/特定jQuery版本還是「最新」,只要發生變化? 更改導致一些IE implimentations放慢速度。