как обновить браузер после загрузки страницы - PullRequest
0 голосов
/ 10 августа 2011

У меня есть сценарий обновления браузера после первой или первой загрузки страницы.Поскольку данные не отображаются должным образом, когда страницы загружаются, а когда я обновляю браузер, они отображаются. Я не знаю причину.

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 10 августа 2011

В любом случае вам придется использовать JavaScript. То, что вы хотите, чтобы ваш код обновления работал, когда страница полностью загружена. Вы можете использовать событие HTML onload, но с этим есть проблемы (например, оно будет срабатывать до загрузки любых изображений). Я бы предложил использовать событие ready() JQuery , если вы хотите быть уверенным, что оно сработает после загрузки всей страницы.

Пример:

// NOTE: This will only work with JQuery loaded.
$(document).ready(function(){
    location.reload(true);
});

Сделать это только при первой загрузке страницы немного сложнее. Вы можете добавить суффикс привязки к URL-адресу, чтобы отслеживать, обновили ли вы страницу или нет, а затем обновлять, только если его нет в URL-адресе:

$(document).ready(function(){
    if(location.hash != "#")
    {
        // Set the URL to whatever it was plus "#".
        // (The page will NOT automatically reload.)
        location = "#";

        // Reload the page.
        location.reload(true);
    }
});

В качестве альтернативы, вы можете использовать строку запроса, так как это автоматически обновит страницу при изменении:

$(document).ready(function(){
    var marker = 'r'; // 'r' is for "refreshed"
    if(location.search != "?"+marker)
    {
        // Set the URL to whatever it was plus "?r".
        // (This will automatically force a page reload.)
        location = "?"+marker;
    }
});

Предупреждение: В любом из этих примеров, если ваш пользователь добавит в закладки страницу после добавления тега "#" или "? R" к URL-адресу, страница не будет обновляться при повторном посещении. страница. Если вы хотите, чтобы он был пуленепробиваемым, вам, возможно, придется использовать cookie-файл.

0 голосов
/ 10 августа 2011

То есть вы хотите, чтобы браузер обновлялся только один раз?Сделайте что-то вроде этого.

window.onload = function(){
    if(!document.location.hash){
        window.location = "#loaded";
    }
}

или jquery

$(document).ready(function(){
    if(document.location.hash){
        window.location = "#loaded";
    }
});

Но, честно говоря, это только временное решение.Столько, сколько вы пытаетесь скрыть это с помощью быстрых исправлений.Я гарантирую, что он вернется, чтобы преследовать вас.Хорошо написанный и структурированный код будет длиться всю жизнь и всегда может быть использован в будущих проектах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...