#php
#php
Вопрос:
У меня есть PHP-форма, которая включает файл, загружаемый при отправке. Поскольку я разрешаю использовать довольно большие файлы, страница часто может загружаться целую вечность.
Есть ли способ показать пользователю какую-либо анимацию загрузки?
Комментарии:
1. функция javascript, которая вставляет анимацию в DOM, привязанная к событию отправки формы.
Ответ №1:
Для использования моего кода вам понадобится jQuery, но оно того стоит:
Поместите этот тег script на свой сайт <head>
:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
Поместите скрытый загрузочный GIF куда-нибудь, где бы вы ни хотели его видеть
<img id="loader" src="loading.gif" />
Скрыть его при загрузке страницы: $('#loader').hide();
Затем в Javascript (или, что еще лучше, jQuery), внутри вашей функции отправки … покажите / скройте это:
function submit()
{
$('#loader').show();
// do your upload stuff
$('#loader').hide();
}
Комментарии:
1. Это хорошая идея при отправке простых данных, но как насчет отправки довольно большого файла? Как это работает в основных браузерах?
2. @Tadeck: PHP не является идеальной платформой для загрузки больших файлов. Если при загрузке есть какие-либо сбои, скорее всего, вся уже загруженная часть потеряна и не подлежит возобновлению. Но в остальном браузерам на самом деле все равно, составляет ли загружаемый файл 1 байт или 50 гигабайт — если браузер может получить доступ к файлу, его можно загрузить.
3. @Marc Я не понимаю вашего ответа. Конечно, PHP имеет много недостатков, и другие языки лучше, когда дело доходит до реализации определенных функций, но как это связано с моим вопросом о отправке введенных пользователем текстовых данных по сравнению с отправкой больших файлов? Дело было в том, что вы не можете отправлять файлы через AJAX, если вы не используете какой-либо Flash и т.д. Это не имеет ничего общего с серверной частью, и вы, вероятно, скроете вращающуюся кнопку (загрузчик) до того, как пользователь загрузит файл. Это слабость вышеупомянутого решения, а не PHP.
Ответ №2:
Я бы поместил скрытое изображение где-нибудь на странице. Вызовите функцию javascript при отправке формы и позвольте этой функции отобразить изображение перед отправкой формы.