Ajax使用雜談 也許也是亂彈
Ajax是一種已不是加載腳本,其最古老的實(shí)現(xiàn)方式是利用iframe來(lái)加載遠(yuǎn)程的腳本利用top.Function來(lái)調(diào)用父窗體的方法。利用a等HTML的target屬性來(lái)指定。簡(jiǎn)單但是后期維護(hù)復(fù)雜化了并且在跨越方面很麻煩。接著就XMLHttpRequest對(duì)象的出現(xiàn),一定程度的簡(jiǎn)化了Ajax的開(kāi)發(fā),但是在不同的瀏覽器中實(shí)現(xiàn)有很多大不同,F(xiàn)ireFox中XMLHttpRequest和IE中的ActiveObject等方式,以及它僅提供了很少和簡(jiǎn)單的Ajax請(qǐng)求和處理。在現(xiàn)在出現(xiàn)了很多的JavaScript框架,在基于XMLHttpRequest的封裝和類庫(kù)的提供,極大的簡(jiǎn)化了我們的Ajax編程。其中最為出名和盛行的jQuery框架。這里需說(shuō)出的是jQuery很好實(shí)現(xiàn)了跨域問(wèn)題。
下面我就說(shuō)幾點(diǎn)自己目前想到的Ajax注意或者技巧,思維也許有點(diǎn)亂,請(qǐng)諒解,將的不好,也請(qǐng)?jiān)彙?
1:Ajax中的X是XML,它也可以很方便的加載XML,但是我個(gè)人覺(jué)得架子啊XML是個(gè)很不好的方式。首先大家都知道XML是一種嚴(yán)格的數(shù)據(jù)存儲(chǔ)方式,有很多冗余信息。再則XML的處理也有一定的復(fù)雜性。XML能實(shí)現(xiàn)跨平臺(tái)性,如WebService,這是WebService的優(yōu)點(diǎn),但是也是一個(gè)致命的缺點(diǎn),它基于的XML冗余信息,所以在分布式中速度也是很慢的。
相比而言Json對(duì)象是一個(gè)輕量級(jí)的存儲(chǔ)方式,它是以名值對(duì)的形式存儲(chǔ)。而且JavaScript腳本本身就是一個(gè)天然的Json對(duì)象,無(wú)需轉(zhuǎn)化,可以直接使用,并且現(xiàn)在.NET框架中提供了對(duì)Json序列化的支持.我個(gè)人觀點(diǎn)是首選Json。
2:在服務(wù)器端為了性能等的考慮經(jīng)常會(huì)有緩存,以及瀏覽器的緩存。有時(shí)我們需要避免,最簡(jiǎn)單的方式是加上一個(gè)時(shí)間戳,"Default.aspx?time=” + DateTime.Now。就可以避免緩存。如果你用的是Jquery的Ajax那可以直接設(shè)置cache:false禁用緩存。
3:在Ajax編程需要注意的是Content-Type,有HTML、Text、Json、XML、Script等方式。我們很多的無(wú)故的錯(cuò)誤經(jīng)常就在這里的設(shè)置。需要注意Ajax的Content-Type,以及服務(wù)端輸出的Content-Type。還有就是服務(wù)器端,我們要輸出前的Response.Clear(),Response.ContentType=Type,以及完成時(shí)的Response.Flush()和Response.Clos()。
4:Ajax并不是高交互、高用戶體驗(yàn)的代表,這需要說(shuō)明。我們的應(yīng)用不該首選Ajax技術(shù),因?yàn)槿绻鸄jax技術(shù)用的不是很好,那反而會(huì)適得其反。還有就是如果要用Ajax,那我們就必須為客戶準(zhǔn)備退路,因?yàn)閍jax請(qǐng)求很可以由于各種原因而出錯(cuò)。
5:Ajax必究是基于客戶端腳本,這就意味在存在一定的安全隱患,很容易暴露我們的某些敏感信息。特別是網(wǎng)上的腳本代碼糜爛,我們有些人經(jīng)常會(huì)在網(wǎng)上Copy下來(lái)僅僅測(cè)試下就加入了我們的項(xiàng)目,我覺(jué)得這是一個(gè)很不好的習(xí)慣。很容易得不償失。
時(shí)間已晚,就說(shuō)這么多吧,如果你還有什么心得或建議請(qǐng)留言。如果你有不懂的疑問(wèn)也可以留言,我會(huì)盡力和盡快回復(fù)。
相關(guān)文章
編碼為GB2312網(wǎng)站讓AJAX接收的數(shù)據(jù)顯示支持中文
GB2312 網(wǎng)站AJAX接收的數(shù)據(jù)顯示支持中文2010-01-01Ajax+Asp源代碼]讀取數(shù)據(jù)庫(kù)內(nèi)容的表格(沒(méi)有用框架)
Ajax+Asp源代碼]讀取數(shù)據(jù)庫(kù)內(nèi)容的表格(沒(méi)有用框架)...2006-11-11js裝載xml文件然后發(fā)向服務(wù)器的實(shí)現(xiàn)代碼
js裝載xml文件然后發(fā)向服務(wù)器,具體的代碼可以參考下面的思路。2009-01-01[ASP.NET AJAX]Function對(duì)象及Type類的方法介紹
[ASP.NET AJAX]Function對(duì)象及Type類的方法介紹...2007-01-01防止ajax重復(fù)請(qǐng)求的方法(GET和POST)
防止ajax重復(fù)請(qǐng)求的方法(GET和POST) ,需要的朋友可以參考下。2011-10-10ajax的json傳值方式在jsp頁(yè)面中的應(yīng)用
ajax的json傳值想必大家早有所耳聞了吧,本文介紹下jsp頁(yè)面中json傳值應(yīng)用,感興趣的你可以參考下哈,希望可以幫助到你2013-03-03ajax 怎么設(shè)置超時(shí)(一個(gè)action執(zhí)行了2遍)
一個(gè)action執(zhí)行了2遍 ,這個(gè)操作大致需要5分多鐘才能完成,于是搜了幾個(gè)可以設(shè)置超時(shí)的地方,希望對(duì)大家有所幫助2014-08-08解決ajax提交到后臺(tái)數(shù)據(jù)成功但返回不走success而走的error問(wèn)題
今天小編就為大家分享一篇解決ajax提交到后臺(tái)數(shù)據(jù)成功但返回不走success而走的error問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08