Перезагрузка jQuery при изменении размера окна: цикл на мобильных устройствах - PullRequest
0 голосов
/ 03 мая 2019

Я использую скрипт jQuery для перезагрузки веб-страницы в случае изменения размера окна.Он хорошо работает на настольном компьютере, однако есть большая проблема с этим кодом на смартфонах: он также выполняется на событиях мобильной прокрутки.Всякий раз, когда я открываю страницу на своем iPhone 6s и начинаю прокручивать, страница перезагружается через 2000 мс.

Я нашел возможное решение, но я не уверен, как включить это в мой код, так как это должно быть изменено и для Wordpress (если честно: я всегда не уверен, как нужно изменять jQueryдля правильной работы на Wordpress.)

Этот код выполняет свою работу, но перезагружает страницу при прокрутке страницы на мобильных устройствах:

<script type="text/javascript">

    jQuery(document).ready(function(){
     /// I think this is not really needed
    })

    jQuery(window).bind('resize', function(e){
        if (window.RT) clearTimeout(window.RT);
        window.RT = setTimeout(function(){
            this.location.reload(false); /* false to get page from cache */
        }, 2000);
    });

</script>

Некоторый код I найден это проверяет размер окна и проверяет его перед выполнением функции перезагрузки.Я не знаю, как связать эти две функции вместе.

var dwidth = $(window).width();

$(window).resize(function(){
    var wwidth = $(window).width();
    if(dwidth!==wwidth){
         dwidth = $(window).width();
         console.log('Width changed');
    }
});

1 Ответ

0 голосов
/ 07 мая 2019

Этот скрипт перезагружает веб-страницу при изменении размера окна.Существует задержка в 1000 мс, чтобы убедиться, что веб-сайт перезагружается только после изменения размера.Чтобы предотвратить перезагрузку страницы при событиях мобильной прокрутки, я добавил этот фрагмент кода .Он проверяет размер окна, если оно действительно изменилось.

var dwidth = jQuery(window).width();
jQuery(window).bind('resize', function(e){

    var wwidth = jQuery(window).width();

    if(dwidth!==wwidth){
     dwidth = jQuery(window).width();

    if (window.RT) clearTimeout(window.RT);
    window.RT = setTimeout(function(){
        this.location.reload(false); /* false to get page from cache */
    }, 1000);
}
});

Протестировано в Wordpress на Chrome и на iPhone 6.

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