que - javascript: violación de Chrome: el controlador[Violación] tomó 83 ms de tiempo de ejecución
habilitar javascript en chrome en windows (3)
Estoy tratando de implementar la funcionalidad de cierre de sesión de Facebook en mi proyecto. El inicio de sesión funciona bien. Pero me estoy enfrentando a recibir el siguiente mensaje en la consola de JavaScript con el código de cierre de sesión.
[Violación] La tarea de JavaScript de larga ejecución tomó 318 ms session.php: 51 1 sdk.js: 135
[Violación] El controlador tomó 83 ms de tiempo de ejecución (50 ms permitidos)
He intentado buscar otros hilos similares y esas soluciones no funcionaron para mí. Intenté eliminar partes de mi código y ver qué parte está dando problemas. Es bastante claro que está recibiendo el error debido al SDK de JS de Facebook como se ve en el mensaje. También he deshabilitado todas mis extensiones de Chrome.
El código funciona bien en Firefox pero no en Chrome, ni en Opera . ¿Hay algún método para extender este tiempo de espera? O cualquier otro método para solucionar este problema en Chrome. Aquí está mi código para cerrar sesión.
<?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>
Por razones obvias, he eliminado la App-Id del código. Cualquier ayuda es apreciada. :)
La última actualización de Google Chrome recibe esta violación, creo que es un error en Chrome, pero funciona bien en Firefox ... Google Chrome falló en la última actualización.
Las "violaciones de Chrome" no representan errores de Chrome o errores de aplicaciones. Son advertencias destinadas a ayudarte a mejorar tu script. Aquí, Chrome le está alertando de que probablemente haya una oportunidad para acelerar su script.
("Violación" es sin duda una terminología engañosa; lo que realmente significa es que la secuencia de comandos viola una directriz predefinida. Estos mensajes aparecieron por primera vez en Chrome a principios de 2017 e idealmente deberían tener un mensaje de "Más información" para elaborar el significado y dar acciones sugeridas al desarrollador. Esperemos que se agreguen en el futuro.)
Parece que has encontrado tu solución, pero aún así será útil para otros, en esta página en este punto
4. Anote el triángulo rojo en la parte superior derecha del evento Animation Frame Fired. Siempre que vea un triángulo rojo, es una advertencia de que puede haber un problema relacionado con este evento.
Si se desplaza sobre este triángulo, puede ver que son los errores del controlador de violaciones y según el punto 4. Sí, hay algún problema relacionado con ese evento.