在我的应用程序中,我使用MVC模型,而Views是使用JavaScript DOM API构建的。 在每个页面上,我必须检查用户的信息,以确定会话是否处于活动状态以及用户的角色是否使他能够访问该页面。 为了实现这一目标,我在每个页面上都有" onload"触发" sessionCheck"的功能向控制器发送AJAX请求并返回应用程序做出决策的信息的函数。 正如我所说,JavaScript也用于构建视图,这意味着在" sessionCheck"功能我还有" headerView"," sectionView"以及构建页面结构的其他函数。
所以问题在于,#34; sessionCheck"已完成其他功能已加载,并且差不多1-2秒,用户有能力查看该页面上发生的情况,并且只有在需要之后才能通过应用程序将其传输出该页面。
我读到JQuery中有一些解决方案" ajax.Complete"函数是可用的,但我在纯JavaScript中不能使用相同的解决方案。有人可以帮我解决这个问题吗?
这是HTML
<body onload="sessionCheckAdmin(); adminHeaderView(); adminUser(); modalView();">
sessionCheckAdmin函数看起来像这样
function sessionCheckAdmin()
{
var formData = new FormData();
formData.append("Code", "3");
formData.append("Sequence", "27");
formData.append("TaskId", "All");
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
var array = JSON.parse(xmlHttp.responseText);
if(array["userRole"] != "Administrator")
window.location.href = "task.php";
}
}
xmlHttp.open("POST", "../Controller.php");
xmlHttp.send(formData);
}
PHP控制器的一部分
case 27:
$array = json_encode($_SESSION);
echo $array;
break;