【发布时间】:2017-07-02 07:16:13
【问题描述】:
我正在尝试在我的项目中实现 Facebook 的注销功能。登录工作得很好。但我正面临着在 JavaScript 控制台中使用注销代码收到以下消息。
[违规] 长时间运行的 JavaScript 任务耗时 318ms session.php:51 1 sdk.js:135
[Violation] 处理程序耗时 83 毫秒(允许 50 毫秒)
我已尝试搜索其他类似的主题,但这些解决方案对我来说并不奏效。我尝试删除部分代码,看看哪一部分出现问题。很明显,由于消息中看到的 Facebook 的 JS SDK,它得到了错误。我还禁用了我的所有 Chrome 扩展程序。
代码在 Firefox 中可以正常工作,但在 Chrome 和 Opera 中都不行。有什么方法可以延长这个超时时间吗?或任何其他在 chrome 中解决此问题的方法。这是我的注销代码。
<?php
session_start();
//echo $_SESSION["current_user"];
//echo $_COOKIE["current_user"];
session_destroy();
unset($_COOKIE["current_user"]);
setcookie("current_user","",time() -3600, "/","", 0);
//header("location: login.php");
?>
<!doctype html>
<html>
<head>
</head>
<body>
<script>
// Default settings
window.fbAsyncInit = function() {
FB.init({
appId : '<app-id>',
cookie : true,
xfbml : true,
version : 'v2.8'
});
FB.AppEvents.logPageView();
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
window.onload = function(){
logout();
}
function logout(){
console.log("1");
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
FB.logout();
console.log("2");
window.location="login.php";
console.log("3");
}
else{
console.log("4");
window.location="login.php";
console.log("5");
}
});
}
</script>
</body>
</html>
出于显而易见的原因,我从代码中删除了 App-Id。任何帮助表示赞赏。 :)
【问题讨论】:
-
这只是一个警告,你不必关心它,你的代码仍然可以工作。
-
@NoNameProvided 但是注销功能在 Chrome 中不起作用。它无法重定向到 Chrome 中的 login.php 页面。
-
事件如果不起作用,则与违规消息无关。它们只是非正式的,对您的代码没有影响。
-
@NoNameProvided 那么代码为什么在 Firefox 中可以运行,而在 Chrome 中却不行呢?我检查了代码,它是正确的。你可以自己去看看。
标签: javascript google-chrome facebook-javascript-sdk