在jQuery 1.9中,Ajax(異步JavaScript和XML)的實現(xiàn)發(fā)生了一些變化。以下是一些重要的變化和更新:
1. 廢棄的實例方法被移除
$.browser $.sub() $.boxModel
2. 返回合理的XML文檔
在早期版本中,即使服務器返回的內容類型是"text/xml",jQuery也不會對其進行正確的解析。現(xiàn)在,通過XMLHttpRequest對象的responseXML屬性,jQuery將獲得正確解析的XML文檔。如果解析失敗,將返回null。
3. 新的parseJSON()函數(shù)
早期的jQuery版本中,使用eval()函數(shù)來解析JSON字符串。這會存在潛在的安全風險,因為eval()函數(shù)會執(zhí)行任何傳遞給它的代碼,并將其作為原生JavaScript代碼執(zhí)行。為了解決這個問題,jQuery新增了一個parseJSON()函數(shù),它僅解析JSON字符串,并且不執(zhí)行任何代碼。
4. 新的$.Deferred() API
Deferred對象允許用戶定義一系列接受或拒絕ajax請求的回調函數(shù)。在jQuery 1.9中,$.Deferred() API被引入,允許開發(fā)人員對多個異步請求進行操作和控制。
5. $.ajax()函數(shù)被修改
$.ajax()函數(shù)及相關方法已進行了修改,以遵循Promises/A規(guī)范。這意味著現(xiàn)在可以根據(jù)異步請求的完成狀態(tài)執(zhí)行相應的操作。這些狀態(tài)包括done(成功)、fail(失敗)和always(不論成功與否)。
總而言之,jQuery 1.9版本中的Ajax功能經(jīng)歷了許多改進和更新,這使得JavaScript開發(fā)人員能夠更好地管理異步請求。這些更新也加強了jQuery的安全性和可靠性。