我有以下代码与我的网站导航一起使用。由于大多数代码是相同的,我想知道是否有办法压缩这个。我是AJAX的新手。感谢
function web()
{
if(XMLHttpRequestObject) {
var obj = document.getElementById('content');
XMLHttpRequestObject.open("GET", "./nav/web.html");
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200) {
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send(null);
}
}
function prices()
{
if(XMLHttpRequestObject) {
var obj = document.getElementById('content');
XMLHttpRequestObject.open("GET", "./nav/prices.html");
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200) {
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send(null);
}
}
function clientList()
{
if(XMLHttpRequestObject) {
var obj = document.getElementById('content');
XMLHttpRequestObject.open("GET", "./nav/clientlist.html");
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200) {
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send(null);
}
}
答案 0 :(得分:0)
是的,你可以,而不是每个进程都有一个函数,内置一个“模板”,将保存每个请求,然后传递一个变量使用像
switch(b) { case "web" : XMLHttpRequestObject.open("GET", "./nav/web.html"); break; case "prices" : XMLHttpRequestObject.open("GET", "./nav/prices.html");
这是一个示例
function dameloPapa(a,b,c) {
if (a=="")
{
document.getElementById(c).innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(c).innerHTML=xmlhttp.responseText;
}
}
switch(b){
case "web" : XMLHttpRequestObject.open("GET", "./nav/web.html?id"+a); break;
//etc...
}
xmlhttp.send();
这样你只需使用JavaScript(onclick,onchange等)调用你的代码dameloPapa('variable','op','div_id');
显示结果我优化了一个这样的随时随地调用,我将它与PHP,MySQL混合在一起并且像魅力一样,希望这有帮助!