在使用jqGrid的時候,明明調用了,但是要麼就是表格不出現,要麼就是數據不出現,感覺很詭異,一直都在jqGird的參數上下功夫。
直到今天上午才發現,極有可能是因爲jqGrid沒來得及加載導致的。然後加上setTimeout,果然問題解決了。
最近遇到好幾個類似的問題,都是因爲這個原因。在後端的開發中很少遇到這樣的問題,因爲基本上都是順序執行,即使用到多線程也會採用合適的方式去處理。最主要的原因還是對js不夠熟悉。
以下代碼的中initGrid主要是去調用jqGrid,整個方法是在backbone的render中調用的
self.initGrid(self.model);// 此中調用經常導致數據或者表格不能顯示
setTimeout(function(){ // 正常工作
self.initGrid(self.model);
},200);
另外,使用jqGrid時遇到一個問題折騰了很久,把datatype屬性寫成了dataType,結果導致表格沒數據。jqGird中部分屬性的命名存在這個問題,類似的屬性還有sortname,sortorder,imgpath等,都沒有采用駝峯式命名。