AJAX Fallback Вариант 1 ~ Отправка Запрос Использование IFrame
IFrames сделать подходящий транспорт для асинхронного призывы, поскольку они могут загрузить содержание, не вызывая всю страницу перезагрузить, и новые IFrame элементов можно создать с помощью JavaScript. В приятное атрибут об IFrame заключается в том, что форма может использовать в качестве своей цели, перегрузки, что IFrame, а не на всю страницу; Такой подход позволяет больших объемов данных для отправки на сервер с помощью POST. Одна из трудностей в IFrame используя в качестве транспорта заключается в том, что мы страницы загрузки необходимо HTML, и она должна иметь событии загрузки JavaScript обработчик сказать основному документу, когда они сделали погрузки. Эта необходимость силы все запросы, сделанные с IFrames быть для страниц, предназначенных для борьбы с IFrame просьбы. (Код не может возьмите XML- файл в том XMLHttpRequest позволяет.) Заметим, что использование IFrames имеет ряд дополнительных ограничений:
Одно из преимуществ, что IFrame имеет более чем XMLHttpRequest, что его можно использовать для закачки файла. Из-за ограничений безопасности браузера, только действия пользователя, такие как нажатие форме, могут взаимодействовать с файлами на пользовательской машине. Это ориентация на форму с IFrame единственный вариант для загрузок файлов, которые не связаны с обычной форме POST и перезагрузите страницу цикла. Однако нет никаких оснований можно не относиться к используя IFrame для загрузок файлов и XMLHttpRequest для остальной части AJAX запросов. Если вы дистанционного скриптов в стиле AJAX запросов, работающих вокруг IFrame ограничения добавит значительный объем работы любой AJAX развития проекта. Создание скрытых IFrameДля получения максимальной совместимости со старыми браузерами, можно только добавить IFrame Вашего HTML и его размером 0x0. (можно не только скрыть, или некоторые браузеры не будет загрузить ее.) Однако такой подход не является гибким, поэтому вам нужно будет создать кадр динамично. В следующем примере, с IFrame создается с помощью innerHTML потому что проще, чем создать его с помощью методов DOM. Заметим, однако, что это также может быть создан с document.createElement, как и div, к которому он добавлен: 1 var rDiv = document.createElement ( "div"); Создание бланкаЕсли вы хотите сделать только Получите просьбе, вы можете изменить значение этого IFrame в src собственности, но сделать POST, вам нужно использовать целенаправленный форме. Получите не является хорошим решением для AJAX запросов по двум причинам: она может отправить только ограниченный объем данных (сумму, которая меняется в зависимости от браузера) и Получите можно кэша и / или предустановленной на прокси-сервера, так что вы никогда не хотите использовать его для выполнения действий, таких как обновление вашей базы данных. Используя форму с IFrame легко. Просто набор виде целевой атрибут, и при отправке формы, в результате нагрузок в IFrame. Следующий пример создает нашу форму и устанавливает ее задач с IFrame мы создали в начале "Создание Скрытые IFrame разделе статьи: 1 rDiv.form = document.createElement ( "форма"); Отправить данные из Загрузить материалу, Оригинал документаЕдинственный способ узнать, что содержание этого IFrame имеет загружена на содержание страницы запустить некоторые JavaScript, что известность исходную страницу, в которой IFrame встроен. Самый простой способ для этого - установить событии загрузки обработчик по документу загрузке. Это ограничение означает, что вы можете не использовать IFrame для загрузки произвольного содержания, как можно с XMLHttpRequest. Однако, это еще полезно для случаев, когда один сервер странице уже используется в качестве шлюза AJAX. Вот пример onload: <органа onload = "parent.document.callback (результат)"> Полный IFrame например AJAXПолный пример того, что IFrame AJAX запросов включает в себя две части. Первый фрагмент является стороне клиента код для создания IFrame и формы. Вторая часть - это серверная часть кода, который готовит некоторые данные и отправляет его обратно в родительский документ в его событии загрузки обработчик. В первой части на примере (Листинг 1) - это JavaScript код в простой HTML файл. Эта страница используется для тестирования; Функции обратного вызова просто сигналы содержание результатов. Вторая часть примера (Листинг 2) - это простой PHP скрипт, который берет данные из POST и отправляет его обратно к основному документу. Чтобы сделать полезную системы, можно также хотите включить несколько дополнительных переменных в форме, которая будет сказать PHP код, что делать с загруженных данных, или вы могли бы логику непосредственно в сценарий и использовать различные целевые страницы каждой задачи вы желаете достичь. Листинг 1. Создание AJAX запрос Использование IFrame
|
||||||
|