Vi phạm Chrome: [Vi phạm] Trình xử lý mất 83ms thời gian chạy


83

Tôi đang cố gắng triển khai chức năng đăng xuất của Facebook trong dự án của mình. Đăng nhập hoạt động tốt. Nhưng tôi đang gặp phải thông báo sau trong bảng điều khiển JavaScript với mã đăng xuất.

[Vi phạm] Tác vụ JavaScript chạy dài mất 318ms session.php: 51 1 sdk.js: 135

[Vi phạm] Trình xử lý mất 83 mili thời gian chạy (cho phép 50 mili giây)

Tôi đã cố gắng tìm kiếm các chủ đề tương tự khác và những giải pháp đó không hiệu quả với tôi. Tôi đã thử xóa các phần mã của mình và xem phần nào đang gây ra sự cố. Rõ ràng rằng nó nhận được lỗi do SDK JS của Facebook như đã thấy trong thông báo. Tôi cũng đã tắt tất cả các tiện ích mở rộng Chrome của mình.

hoạt động tốt trong Firefox nhưng không hoạt động trong Chrome, cũng như trong Opera . Có phương pháp nào để tôi kéo dài thời gian chờ này không? Hoặc bất kỳ phương pháp nào khác để khắc phục sự cố này trong chrome. Đây là mã của tôi để đăng xuất.

<?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>

Vì lý do rõ ràng, tôi đã xóa App-Id khỏi mã. Bất kỳ trợ giúp được đánh giá cao. :)


1
Nó chỉ là một cảnh báo, bạn không cần phải quan tâm đến nó, mã của bạn vẫn sẽ hoạt động.
NoNameProvided

1
@NoNameProvided Nhưng chức năng đăng xuất không hoạt động trong Chrome. Nó không thể chuyển hướng đến trang login.php trong Chrome.
FreeKrishna

3
Sự kiện nếu nó không hoạt động, nó không liên quan đến các thông báo Vi phạm. Chúng chỉ không chính thức và không ảnh hưởng đến mã của bạn.
NoNameProvided

1
@NoNameProvided Sau đó, tại sao mã hoạt động trong Firefox, nhưng không hoạt động trong Chrome? Tôi đã kiểm tra mã, nó chính xác. Bạn có thể có một cái nhìn cho mình.
FreeKrishna

2
Nó có vẻ là một trùng lặp: stackoverflow.com/questions/41218507/...
oklas

Câu trả lời:


173

"Vi phạm Chrome" không đại diện cho lỗi trong Chrome hoặc ứng dụng web của riêng bạn. Thay vào đó, chúng là những cảnh báo để giúp bạn cải thiện ứng dụng của mình. Trong trường hợp này, Long running JavaScripttook 83ms of runtimeđang cảnh báo bạn có thể có cơ hội để tăng tốc tập lệnh của bạn.

("Vi phạm" không phải là thuật ngữ tốt nhất; nó được sử dụng ở đây để ngụ ý tập lệnh "vi phạm" một nguyên tắc được xác định trước, nhưng "cảnh báo" hoặc tương tự sẽ rõ ràng hơn. Những thông báo này xuất hiện lần đầu trong Chrome vào đầu năm 2017 và lý tưởng là phải có Lời nhắc "Thông tin thêm" để giải thích rõ hơn về ý nghĩa và đưa ra các hành động đề xuất cho nhà phát triển. Hy vọng rằng những hành động đó sẽ được bổ sung trong tương lai.)


30

Có lẽ hơi lạc đề, chỉ cần lưu ý rằng những loại thông báo này cũng có thể được nhìn thấy khi bạn đang gỡ lỗi mã của mình bằng một điểm ngắt bên trong một hàm không đồng bộ setTimeoutnhư dưới đây:

[Violation] 'setTimeout' handler took 43129ms

Con số đó (43129ms) phụ thuộc vào khoảng thời gian bạn dừng trong chức năng không đồng bộ của mình


2
Nhờ bình luận này, tôi đã có thể tìm thấy chủ đề này và nhận được câu trả lời, lạc đề hay không, nó rất hữu ích.
stramin

12

Có vẻ như bạn đã tìm thấy giải pháp của mình, nhưng nó vẫn sẽ hữu ích cho những người khác, trên trang này về điểm dựa trên Chrome 59.

4.Lưu ý hình tam giác màu đỏ ở trên cùng bên phải của sự kiện Khung hoạt hình được kích hoạt. Bất cứ khi nào bạn nhìn thấy hình tam giác màu đỏ, đó là cảnh báo rằng có thể có sự cố liên quan đến sự kiện này.

Nếu bạn di chuột vào hình tam giác này, bạn có thể thấy đó là những lỗi xử lý vi phạm và theo điểm 4. vâng, có một số vấn đề liên quan đến sự kiện đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.