Ajax按钮加载状态
ajax button loading state
我用网上的教程制作了这个小脚本。PHP函数调用这个javascript的次数和有按钮的次数一样多(foreach),现在我有三个。$value是特定按钮的div名称(按钮存储在PHP数组中)。
一切正常…除了当我快速点击所有按钮时,加载GIF仍然没有javascript改变按钮状态。它从另一个php获得的响应是新的按钮状态和会话变量更改。会话变量被更改,但div不变。
所以,这里我需要帮助,我怎么能做到这一点,当我点击按钮快,div得到改变了吗?
我的代码function load_javascripts() {
foreach ($GLOBALS["VARIABLES"]["button_list"] as $key => $value) {
$scripts .= "
function run_alias_button_".$value."(str)
{
document.getElementById('aliasbutton_".$value."').innerHTML='<img src=ajax_loader.gif>';
if (str=='')
{
document.getElementById('aliasbutton_".$value."').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('aliasbutton_".$value."').innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open('GET','?leht=alias_logimine&alias=".$value."',true);
xmlhttp.send();
}
";
}
return $scripts;
}
将var xmlhttp;
放在函数的最开头,使变量显式地本地化。有时,如果没有该语句,浏览器可能会尝试寻找具有此名称的全局变量,并且就绪状态监控从一个请求转移到另一个请求。
给你个小提示。总是在onreadystatechange事件之前使用open函数。你使用的方式可能适用于firefox,但IE不理解。这样的:
xmlhttp.open('GET','?leht=alias_logimine&alias=".$value."',true);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById('aliasbutton_".$value."').innerHTML=xmlhttp.responseText;
}
}
xmlhttp.send();
相关文章:
- Nodejs服务器:加载资源失败:服务器的响应状态为404(未找到)
- 如何在浏览器重新加载时保存位置哈希状态
- 如何加载嵌套3个状态的UI路由器UI视图模板
- ui路由器的惰性加载状态
- angularjs-ui路由器父状态,参数加载在子状态之后
- 带Jquery的wep API,加载资源失败:服务器响应状态为404(未找到)
- 当移动设备从睡眠状态唤醒时重新加载网页
- 如何在每次页面重新加载时更改渐变背景,同时保持光标位置元素处于活动状态
- 在加载状态之前,我需要在angular js中为每个状态添加角色
- 带有jquery.min.map的Ruby on Rails:未能加载资源状态406
- 在angular js中,每次应用程序进入状态时,重新加载状态的最佳方式是什么
- jQuery识别页面加载上的单选按钮的不正确状态,当单选值=“0”时;否”;并且两个无线电都没有被选择
- AngularJS-在子状态中加载命名视图(非抽象)
- 表现出承诺'加载状态
- 在表重新加载后,使用setInterval保持表的显示-隐藏状态
- 维护手动页面刷新时通过AJAX加载的状态/内容
- css类在页面重新加载后处于活动状态
- 在UI-Router的嵌套路由中,子状态加载父状态templateUrl
- 如何查找系统's音频驱动状态加载html5页面
- 如何重置 JavaScript 以状态加载