借用了梅花兄的一個慣用語:急速狂飙.
首先我來說說對AJax.Net和atlas的比較吧!免得朋友們在一些方面犯和我同樣的錯誤,當然,這也僅僅代表了我的體會和個人觀點
1,如果你是使用forms驗證,在一個未容許的頁面會出現JS名字空間未定義的錯誤,這對於AJax.Net還是atlas來說都是一樣的,解決辦法是先容許所有用戶,再單獨在web.config裡面設置權限
2,在速度,性能,穩定性上面atlas稍微比AJax.Net勝一籌.
3,ajax.net支持同步傳輸數據,也支持異步傳輸數據,但是atlas只支持異步傳輸數據,所以你如果想控制JS代碼的流程的話ajax.net比atlas要強,但是AJax.Net 在異步傳輸上有個特點,不容許在同一時間多次調用同一服務器類,我的解決辦法是另外寫個類
4,AJax.Net和atlas都能夠從服務器返回個DataTable,但是在客戶端接收的方法不同,下面是一個小例子,假設var dt =服務器返回的DataTable
對於AJax.Net 的方法是:
if(dt.Rows.length>0)
{
a.style.display="";
a.innerHtml="";
for(var row=0;row<dt.Rows.length;row++)
{
var cur = dt.Rows[row];
a.innerHtml+="<li><a href='Javascript:void(0)' type="+cur.this_url+" id="+cur.this_id+" >"+cur.this_title+"</a></li>";
document.getElementById("pageIndexTd").innerHtml=" ";
}
}
在AJax中取得服務器返回的datatable的 行數是dt.Rows.length,但是atlas是dt.get_length()
在AJax.Net中得到某一行是dt.Rows[i],而atlas是dt.getItem(i)
在AJax.Net中得到某行某列是dt.Rows[i].title,其中 title是列名,而atlas是dt.getItem(i).getProperty("title"),其中title是列名