Ajax loading graphic
所以我不是JavaScript的天才,但我可以按照教程就好。我有我的Ajax JavaScript请求。我如何做到这一点,以便我可以在请求信息时进行.gif动画展示?以下是代码:Ajax loading graphic
function ajaxFunction(){
var ajaxRequest; // The variable that makes Ajax possible!
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay = document.getElementById('confirm');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
var number = document.getElementById('number').value;
var message = document.getElementById('message').value;
var queryString = "?number=" + number + "&message=" + message;
ajaxRequest.open("GET", "sms.php" + queryString, true);
ajaxRequest.send(null);
}
GIF文件的名称是ajax-loader.gif。
我知道这可以用jQuery轻松完成,但我只能使用直接的原始JavaScript代码,而不是额外的库。
当您启动AJAX请求,添加img
元素:
var image=document.createElement('img');
image.setAttribute('src', 'ajax-loader.gif');
document.getElementsByTagName('body')[0].appendChild(image);
当AJAX请求完成后,将其删除。 (此代码假定image
仍然在范围内)
image.parentNode.removeChild(image);
那么这是否将图像放入body div? – 2011-06-05 03:16:31
它将它放入'body'中。没有涉及“div”。 – icktoofay 2011-06-05 03:18:18
只是...在身体的任何地方? – 2011-06-05 03:21:21
如果可以的话,我会避免使用这种方法为您XHR请求。我会使用jQuery或其他框架。它们为您提供了许多更多的测试选项,您可以在任何合理的时间内对自己进行编码。 http://api.jquery.com/jQuery.ajax/是一个很好的开始。您可以使用beforeSend和afterSend事件。
@icktoofay正如我所说的,使用了一个教程。他一定使用过同样的一个。 – 2011-06-05 03:15:50
我知道,我只是说它很有趣,一个教程可以在Stack Overflow上得到多个问题。 – icktoofay 2011-06-05 03:17:48