Php 在ajax加载时创建加载图像
这是我的密码。我试图插入一个图像来显示ajax正在加载,但我就是做不好;我尝试了很多可能的方法,但都不管用。有什么建议吗Php 在ajax加载时创建加载图像,php,javascript,html,ajax,Php,Javascript,Html,Ajax,这是我的密码。我试图插入一个图像来显示ajax正在加载,但我就是做不好;我尝试了很多可能的方法,但都不管用。有什么建议吗 ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4){ var ajaxDisplay = document.getElementById('main_result'); ajaxDisplay.innerHTML = ajaxReque
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay = document.getElementById('main_result');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
$("#main_result").empty().html('<img src="loading.gif" />');
var category = document.getElementById('category').value;
var brand = document.getElementById('brand').value;
var item = document.getElementById('item').value;
var queryString = "&category=" + category + "&brand="+ brand +"&item="+ item;
ajaxRequest.open("GET", "main_search_special.php?section=special" + queryString, true);
ajaxRequest.send(null);
ajaxRequest.onreadystatechange=function(){
if(ajaxRequest.readyState==4){
var ajaxDisplay=document.getElementById('main_result');
ajaxDisplay.innerHTML=ajaxRequest.responseText;
}
}
$(“#主结果”).empty().html(“”);
var category=document.getElementById('category')。值;
var brand=document.getElementById('brand')。值;
var item=document.getElementById('item')。值;
var queryString=“&category=“+category+”&brand=“+brand+”&item=“+item;
打开(“GET”,“main\u search\u special.php?section=special”+queryString,true);
ajaxRequest.send(空);
发送请求之前,只需将图像添加到显示区域即可。请求完成时,结果将覆盖它
...
var ajaxDisplay = document.getElementById("main_result");
ajaxDisplay.innerHTML = "<img src='loading.gif' />"
ajaxRequest.send(null);
。。。
var ajaxDisplay=document.getElementById(“主结果”);
ajaxDisplay.innerHTML=“”
ajaxRequest.send(空);
发送请求之前,只需将图像添加到显示区域即可。请求完成时,结果将覆盖它
...
var ajaxDisplay = document.getElementById("main_result");
ajaxDisplay.innerHTML = "<img src='loading.gif' />"
ajaxRequest.send(null);
。。。
var ajaxDisplay=document.getElementById(“主结果”);
ajaxDisplay.innerHTML=“”
ajaxRequest.send(空);
你可以用两种不同的方法来解决这个问题,你可以
#1
可能是最受欢迎的,因为它不会干扰文档的加载,而是在完成所有其他操作后加载。由于创建/销毁元素比简单地隐藏/显示元素需要更多的处理时间,因此不推荐使用这种方法
频繁发送请求时,最好使用#2
,因为您将经常使用加载程序映像,因此无需创建/销毁它,只需从一开始就可以使用它。我推荐这种方法
如果您想安全起见,最好使用#3
。这在页面加载完成之前不会加载图像,并且只需要很少的处理时间
|代码
HTML
|代码 HTML
|代码 HTML 杂项 我建议跟踪返回的状态。当请求失败时,您的代码将返回一个错误,因为您没有处理它。确保请求成功并处理错误
你也应该考虑使用,如果你有特殊字符的数据,比如空格等。
var category = document.getElementById('category').value;
var brand = document.getElementById('brand').value;
var item = document.getElementById('item').value;
var url = "main_search_special.php"
var parameters = "section=special&category=" + encodeURIComponent(category) + "&brand=" + encodeURIComponent(brand) + "&item=" + encodeURIComponent(item);
ajaxRequest.open("GET", url+"?"+parameters, true);
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4 && http.status == 200){
var ajaxDisplay = document.getElementById('main_result');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}else{
console.log("Request for \""+url+ "\" failed.");
}
}
ajaxRequest.send();
你可以用两种不同的方法来解决这个问题,你可以
#1
可能是最受欢迎的,因为它不会干扰文档的加载,而是在完成所有其他操作后加载。由于创建/销毁元素比简单地隐藏/显示元素需要更多的处理时间,因此不推荐使用这种方法
频繁发送请求时,最好使用#2
,因为您将经常使用加载程序映像,因此无需创建/销毁它,只需从一开始就可以使用它。我推荐这种方法
如果您想安全起见,最好使用#3
。这在页面加载完成之前不会加载图像,并且只需要很少的处理时间
|代码
HTML
|代码 HTML
|代码 HTML 杂项 我建议跟踪返回的状态。当请求失败时,您的代码将返回一个错误,因为您没有处理它。确保请求成功并处理错误
你也应该考虑使用,如果你有特殊字符的数据,比如空格等。
var category = document.getElementById('category').value;
var brand = document.getElementById('brand').value;
var item = document.getElementById('item').value;
var url = "main_search_special.php"
var parameters = "section=special&category=" + encodeURIComponent(category) + "&brand=" + encodeURIComponent(brand) + "&item=" + encodeURIComponent(item);
ajaxRequest.open("GET", url+"?"+parameters, true);
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4 && http.status == 200){
var ajaxDisplay = document.getElementById('main_result');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}else{
console.log("Request for \""+url+ "\" failed.");
}
}
ajaxRequest.send();
我建议将return操作放到它自己的函数中,使它看起来更干净一些 但要添加图像,您只需执行以下操作: 在发送之前(基本上是函数中的任何地方),创建image元素并附加到html中您喜欢的任何元素
当ajax调用返回时,删除image元素 我建议将return操作放到它自己的函数中,使它看起来更干净一些 但要添加图像,您只需执行以下操作: 在发送之前(基本上是函数中的任何地方),创建image元素并附加到html中您喜欢的任何元素 当ajax调用返回时,删除image元素 这就是你能做的- 在您最喜欢的位置设置一个图像。将其可见性设置为隐藏。在调用php之前,将其可见性设置为可见,然后再次在php文件响应后,可以将图像可见性设置为隐藏。 这是你可以做到这一点的方法之一,还有其他方法
search.onclick = function()
{
var ajaxRequest;
document.getElementById("image_loading").style.visibility = "visible";
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.getElementById("image_loading").style.visibility = "hidden";
var ajaxDisplay = document.getElementById('main_result');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
$("#main_result").empty().html('<img src="loading.gif" />');
var category = document.getElementById('category').value;
var brand = document.getElementById('brand').value;
var item = document.getElementById('item').value;
var queryString = "&category=" + category + "&brand="+ brand +"&item="+ item;
ajaxRequest.open("GET", "main_search_special.php?section=special" + queryString, true);
ajaxRequest.send(null);
}
search.onclick=function()
{
var ajaxRequest;
document.getElementById(“图像加载”).style.visibility=“可见”;
ajaxRequest.onreadystatechange=函数(){
if(ajaxRequest.readyState==4){
document.getElementById(“图像加载”).style.visibility=“隐藏”;
var ajaxDisplay=document.getElementById('main_result');
ajaxDisplay.innerHTML=ajaxRequest.responseText;
<div id='content'></div>
function CreateLoader(){
var img = document.createElement("img");
img.id = "ajaxloader";
img.src = "loader.gif";
img.alt = "";
document.getElementById("content").appendChild(img);
img.show = function(){ img.style.display = "block"; }
img.hide = function(){ img.style.display = "none"; }
img.hide();
return img;
}
var eLoader = CreateLoader();
var http = new XMLHttpRequest();
var url = "thepage.php";
var params = "whatever=you&want=in+here";
http.open("POST", url, true);
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
eLoader.hide();
document.getElementById('content').innerHTML = http.responseText
}
}
function BeginLoading(){
eLoader.show();
http.send(params);
}
BeginLoading();
var category = document.getElementById('category').value;
var brand = document.getElementById('brand').value;
var item = document.getElementById('item').value;
var url = "main_search_special.php"
var parameters = "section=special&category=" + encodeURIComponent(category) + "&brand=" + encodeURIComponent(brand) + "&item=" + encodeURIComponent(item);
ajaxRequest.open("GET", url+"?"+parameters, true);
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4 && http.status == 200){
var ajaxDisplay = document.getElementById('main_result');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}else{
console.log("Request for \""+url+ "\" failed.");
}
}
ajaxRequest.send();
search.onclick = function()
{
var ajaxRequest;
document.getElementById("image_loading").style.visibility = "visible";
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.getElementById("image_loading").style.visibility = "hidden";
var ajaxDisplay = document.getElementById('main_result');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
$("#main_result").empty().html('<img src="loading.gif" />');
var category = document.getElementById('category').value;
var brand = document.getElementById('brand').value;
var item = document.getElementById('item').value;
var queryString = "&category=" + category + "&brand="+ brand +"&item="+ item;
ajaxRequest.open("GET", "main_search_special.php?section=special" + queryString, true);
ajaxRequest.send(null);
}