Значок загрузки продолжает отображаться во время загрузки файла
При загрузке pdf-файла значок загрузки продолжает отображаться на странице. Похоже, что функция beforeunload срабатывает при загрузке файла. В чем может быть ошибка в моем коде?
t1.php
<html> <head> <script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script> </head> <body> <script> $(window).on('beforeunload', function(event) { $('#loading').show(); }); $(window).on('load', function(event) { $('#loading').hide(); }); </script> <div id="loading">Loading...</div> <a href="t1.php?pdf=<?php echo 'Intro.pdf';?>"><button>download</button></a> <?php if(isset($_GET['pdf'])){ $bbpdf = $_GET['pdf']; header("Pragma: public"); // required header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private", false); // required for certain browsers header("Content-Type: application/pdf"); header("Content-Disposition: attachment; filename=\"" . basename($bbpdf)); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($bbpdf)); ob_clean(); flush(); readfile($bbpdf); } ?> </body> </html>
ramyajaya
Проблема, которую я нахожу в вашем коде, - это $window.груз не будет перезваниваться . Это не будет вызвано после загрузки вашего документа, так как, Поскольку вы выполняете все операции на одной странице, функция загрузки будет вызвана при загрузке страницы или обновлении.
Вы можете попробовать какой-нибудь другой вариант, например отобразить загрузочный div при вызове функции get pdf pho и скрыть его, когда эта функция завершит свои операции
Надеюсь, это поможет
Vidhya Raju
Я попробовал php-программу в отдельном файле, тогда тоже существует такая же проблема. Однако страница не выгружается до запуска функции unload
ramyajaya
если вы готовы использовать два php, то $(window).функция загрузки не требуется.
она течет вот так
Currentwindow.РНР-&ГТ; кнопку нажмите-и GT; окно.разгрузить дисплей загрузки сообщение-&ГТ; download.php делает операции загрузки и в итоге это перенаправление тока windows.php
Vidhya Raju
Но мне нужно, чтобы функция beforeunload и load отображала значок загрузки при перенаправлении на другую страницу. Просто я столкнулся с проблемой при загрузке файла. почему функция beforeunload срабатывает, когда я пытаюсь загрузить файл? Нет способа решить эту проблему?
ramyajaya
Вместо beforeunload попробуйте выгрузить событие, так как работа этого события отличается от браузера к браузеру .
Ссылка : https://api.jquery.com/unload/
Vidhya Raju
событие выгрузки не работает, так как оно было устаревшим. Только перед загрузкой работает.
ramyajaya
Попробуйте воспользоваться этим
$(window).on('unload', функция(событие) {
$('погрузка#').показать();
});
Вместо beforeunload
Это показывает msg когда вы переходите за пределы страницы а не на любое событие происходящее внутри страницы так что ваш метод get будет вызван первым
Pankaj Nikam
Привет,
Удалось ли вам решить этот вопрос? У меня та же проблема.
Спасибо.