js jquery ajax的幾種用法總結(jié)(及優(yōu)缺點(diǎn)介紹)
這篇文章,是我不知道什么是ajax到熟練運(yùn)用ajax的一個(gè)歷程。
一,最原始的方式來(lái)運(yùn)用ajax
<SCRIPT language=javascript>
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
//定義了一個(gè)ajax的入口函數(shù),供用view層用戶調(diào)用
function show_type(type_id) {
// alert(id);
createXMLHttpRequest();
var url = "../ajax/shop_type_status.php?id="+type_id+"&time="+Math.random();
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = function(){ show_back();}
xmlHttp.send(null);
}
//回調(diào)函數(shù),將從調(diào)用的php文件中取得的數(shù)據(jù),反還給用戶
function show_back() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
//document.getElementById('cat_id').value = id;
document.getElementById('type_status').innerHTML = xmlHttp.responseText;
}
}
}
</SCRIPT>
個(gè)人分析:這種方法挺好的,簡(jiǎn)單靈活,但是有一點(diǎn)不好,就是冗余代碼比較多,不利于后期維護(hù)。
二,js端封裝的ajaxrequest
這個(gè)東西,對(duì)于習(xí)慣了用javascript的人來(lái)說(shuō),是一個(gè)不錯(cuò)的選擇,它是裝上面所說(shuō)的那種方法簡(jiǎn)單的封裝了一下,做了統(tǒng)一的調(diào)用。感覺(jué)不錯(cuò),代碼挺多的就不貼出來(lái)了,大家可以到google搜a(bǔ)jaxrequest。
//ajaxrequest.js里面有一個(gè)這個(gè)方法這個(gè)方法是供view端調(diào)用的接口,接口可以有多個(gè),根據(jù)情況自己加
function ajax_action_fun(url,fun) {
var ajax=new AJAXRequest;
ajax.get(
url,
function(obj){alert(obj.responseText);fun()}
);
}
//html里面調(diào)用這個(gè)接口
get_shop_son_list //是回調(diào)后執(zhí)行的方法名
ajax_action_fun("../ajax/shop_ajax.php?type=1",get_shop_list);
function get_shop_list(resValue){
//這里就是你要的操作
}
個(gè)人分析:它彌補(bǔ)了第一種方法的不足,統(tǒng)一調(diào)用接口,可以設(shè)置回調(diào)函數(shù),缺點(diǎn)如果有的話,不在ajaxrequest本身而在于javascript,舉個(gè)例子吧
javascript:如果我想調(diào)用ajax_action_fun這個(gè)方法我要在html里加個(gè)東西
<a class="showshop" href='javascript:' onclick=ajax_action_fun("../ajax/shop_ajax.php?type=1",get_shop_list);>顯示店</a>
jquery:用它可以盡量把js和html分開(kāi),這對(duì)于后期維護(hù)是很幫助的,會(huì)節(jié)省很多時(shí)間,例如,全站換html;
$(".showshop").bind("click", {url: "../ajax/shop_ajax.php?type=1",function:get_shop_list}, ajax_action_fun);
這樣就可以不用在html里面寫(xiě)onclick事件了
三,jquery的ajax
1)
$.ajax({
type: "POST",
url: "test.php", //調(diào)用的php文件
data: "name=zhang",
success: function(msg){ //回調(diào)函數(shù)
alert( "Data Saved: " + msg ); //這里是操作
}
});
2)
//調(diào)用test.php文件,傳個(gè)參數(shù),data是返回的數(shù)據(jù)
$.post("test.php", { name: "zhang"},
function(data){
alert("Data Loaded: " + data);
});
相關(guān)文章
能在網(wǎng)頁(yè)中寫(xiě)字和能擦寫(xiě)的js程序
從經(jīng)典論壇發(fā)現(xiàn)的一個(gè)可以在網(wǎng)頁(yè)中寫(xiě)字和有擦除功能的javascript代碼2008-04-04JavaScript中l(wèi)ayer關(guān)閉指定彈出窗口方法總結(jié)
這篇文章主要給大家介紹了關(guān)于JavaScript中l(wèi)ayer關(guān)閉指定彈出窗口方法的相關(guān)資料,layer是layui的一個(gè)彈出層組件,但是可以作為獨(dú)立組件使用,需要的朋友可以參考下2023-10-10前端URL拼接路徑參數(shù)具體實(shí)現(xiàn)代碼
這篇文章主要給大家介紹了關(guān)于前端URL拼接路徑參數(shù)具體實(shí)現(xiàn)的相關(guān)資料,url地址拼接是經(jīng)常會(huì)遇到的問(wèn)題,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12JS簡(jiǎn)單實(shí)現(xiàn)點(diǎn)擊跳轉(zhuǎn)登陸郵箱功能的方法
這篇文章主要介紹了JS簡(jiǎn)單實(shí)現(xiàn)點(diǎn)擊跳轉(zhuǎn)登陸郵箱功能的方法,涉及js針對(duì)hash表的遍歷與頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-10-10詳解JavaScript中關(guān)于this指向的4種情況
這篇文章主要介紹了JavaScript中關(guān)于this指向的4種情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04使用JavaScript制作待辦事項(xiàng)列表的示例代碼
這篇文章主要介紹了如何使用 JavaScript創(chuàng)建待辦事項(xiàng)列表HTML的完整信息和教程,文中但是示例代碼講解詳細(xì),感興趣的同學(xué)可以動(dòng)手試一試2022-01-01使用localStorage替代cookie做本地存儲(chǔ)
這篇文章主要為大家詳細(xì)介紹了使用localStorage替代cookie做本地存儲(chǔ),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09chorme 瀏覽器記住密碼后input黃色背景處理方法(兩種)
使用chrome瀏覽器選擇記住密碼的賬號(hào),輸入框會(huì)自動(dòng)加上黃色的背景,有些設(shè)計(jì)輸入框是透明背景的,需要去除掉這個(gè)黃色的背景。下面給大家分享chorme 瀏覽器記住密碼后input黃色背景處理方法,一起看看吧2017-11-11