-
استفاده از چند XMLHttp
سلام دوستان
من دارم یک سایت با AJAX درست می کنم و یک تابع برای استفاده از AJAX نوشتم و خیلی هم خوب کار می کنه.
اما یک مشکلی که دارم نمی دونم چطوری تایع get رو تغییر بدم تا بتونم همزمان در یک صفحه از چند XMLHttp استفاده کنم تا از ایجاد توایع اضافه جلوگیری کنم.
چون خوده تابع get همه کارهای مورد نیاز منو رو انجام میده.
Ajax.js
کد:
function $(id){
return document.getElementById(id);
}
function GetXMLHttpObject(){
var XMLHttp = null;
try{
XMLHttp = new XMLHttpRequest();
}
catch(e){
try{
XMLHttp = new ActiveXObject("Msxml2.XMLHttp");
}
catch(e){
XMLHttp = new ActiveXObject("Microsoft.XMLHttp");
}
}
return XMLHttp;
}
function get(send_method, program, page, send, get_by){
XMLHttp = GetXMLHttpObject();
var method = send_method.toUpperCase();
var file = "programs/"+ program +"/"+ page;
if(method == "GET"){
file = file +"?"+ send;
send = null;
}
XMLHttp.open(method, file, true);
if(method == "POST"){
XMLHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
XMLHttp.setRequestHeader("Content-length", send.length);
XMLHttp.setRequestHeader("Connection", "close");
}
var get = get_by.toLowerCase().split(":");
if(get[0] == "id"){
XMLHttp.onreadystatechange = function(){
if(XMLHttp.readyState==4){
var cacheResponse = XMLHttp.responseText;
$(get[1]).innerHTML = cacheResponse;
runScript(cacheResponse);
}else{loading(get[1])}
}
}
if(get[0] == "function"){XMLHttp.onreadystatechange = eval.call(window, get[1]);}
XMLHttp.send(send);
}
function runScript(cacheResponse){
if(!!window.execScript){
window.execScript(getScript(cacheResponse));
}else{
eval.call(window, getScript(cacheResponse));
}
}
function getScript(response){
var scripts;
response.replace(/<script[^>]*>([\s\S]+)<\/script>/gi, function(match, scr){
scripts = scr;
});
return scripts;
}
function loading(id){
$(id).innerHTML = "<p align=\"center\"><img src=\"loading.gif\" border=\"0\"><br><br>... در حال بارگزاری</p>";
}
من فقط می خوام از تکرار جلوگیری کنم.
و لطفا استفاده از JQuery را پیشنهاد ندهید.
باتشکر