我想通过ajax请求检查用户的登录状态。根据用户登录的情况,我想显示用户名/密码输入或用户名。目前,请求在body.onload上发送,并显示一个prgoress指示符,直到响应到达。还有更好的方法吗?
我们假设需求声明不应该直接进行服务器端处理。
答案 0 :(得分:6)
这听起来像是在呈现页面之前应首先在服务器上完成的操作。如果某人禁用了javascript,会发生什么?
答案 1 :(得分:2)
如果您不想依赖工具包,可以创建自己的DOMReady函数,看起来像这样:
/* Usage: DOMReady(ajaxFunc); */ function DOMReady(f) { if (!document.all) { document.addEventListener("DOMContentLoaded", f, false); } else { if (document.readystate == 'complete') { window.setTimeout(f, 0); } else { //Add event to onload just if all else fails attachEvent(window, "load", f); } } }
或者更复杂的解决方案:http://snipplr.com/view/6029/domreadyjs/
答案 2 :(得分:1)
为什么不在用户获得html之前检查?
如果您只是使用Javascript运行静态HTML,我建议使用JQuery并使用$(文档).ready():
答案 3 :(得分:0)
我认为这应该是可能的,但不建议这样做。正确的做法是让服务器在发送之前完全确定页面的内容。
如果您被慢速图片下载或其他非HTML内容所困扰,请查看各种JavaScript库之一。我总是推荐jQuery,其语法如下:
$(document).ready(function() {
// The DOM is fully loaded now, but images might still be loading.
});
答案 4 :(得分:0)
我相信如果你使用内联javascript,它应该在遇到它时立即执行:
<HTML><HEAD>...</HEAD>
<BODY>
<script>
document.write("This is written before anything else");
</script>
This come later.
</BODY>
</HTML>