ГлавнаяBTL инфоПрограммированиеJavaScript
Статьи

JavaScript
JavaScript - это язык для составления сценариев, позволяющих выполнять разные действия непосредственно на машине пользователя. Распологаются данные сценарии внутри HTML документов...
 

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

Изменение стилей элементов
Динамическое изменение стилей элементов поддерживается почти в одинаковой форме всеми современными браузерами...
 

Работа с таблицами стилей
Доступ к таблицам стилей через коллекцию document.styleSheets и их изменение, поддерживают Internet Explorer, Gecko-браузеры (Mozilla, Firefox и т.д.), а также KHTML-браузеры (Konqueror, Safari), Opera (начиная с версии 9.0)...
 

Атрибуты и свойства: модель DOM и отличия в Internet Explorer
 

Получение данных от сервера без перезагрузки страницы
Различные способы обращения к серверу без перезагрузки страницы принято называть общим термином "Remote Scripting". Здесь будут собраны и описаны преимущества и недостатки нескольких наиболее распространенных подходов...
 

Полезные функции
Работа со строками, Обработка событий, Работа с CSS-классами, Работа с объектами и функциями...
 

Эмуляция selectionStart/selectionEnd в Internet Explorer
Для работы с отмеченной областью текстовых полей в Internet Explorer существует объект selection, предоставляющий широкие возможности. Однако, когда требуется выполнить элементарную операцию, к примеру выделение определённого слова в тексте, вдруг выясняется, что сделать это очень сложно. Хотелось бы, чтобы текстовые поля в Internet Explorer поддерживали свойства selectionStart/selectionEnd и метод setSelectionRange(), реализованные в Gecko-браузерах...
 

Эмуляция отправки формы при помощи XMLHttpRequest
Данный набор функций позволяет отправлять данные на сервер при помощи XMLHttpRequest так, что на сервере они будут восприниматься как данные обычной POST-формы. Поскольку кодирование данных осуществляет функция escapeURIComponent(), всегда используется кодировка UTF-8...
 

Создание графического checkbox-а
Иногда веб-дизайнеры, увлёкшись сочинением ни на что не похожего суперстиля для сайта, сталкиваются с необходимостью вписать в этот свой уникальный стиль стандартные элементы управления HTML-форм. Стандартные элементы, хотя и всем привычны, выглядят довольно коряво, к тому же могут иметь совершенно разный вид на разных платформах. Естественно, в этом случае у дизайнера возникает желание совсем отказаться от стандартных элементов управления и нарисовать свои собственные...
 


1 2 
В начало Предыдущая Следующая В конец
 

Оглавление

Введение

Различные способы обращения к серверу без перезагрузки страницы принято называть общим термином \"Remote Scripting\". Здесь будут собраны и описаны преимущества и недостатки нескольких наиболее распространенных подходов.

IFRAME: Загрузка данных в скрытый фрейм

Описание

Простейший и самый широко распространённый способ — использовать скрытый фрейм, в который и будут загружаться данные. Обычно такой фрейм реализуется при помощи элемента IFRAME.

<iframe name=\"buffer\" src=\"about:blank\"      style=\"width:0px; height:0px; overflow:hidden; border:none;\"></iframe>  

Использовать display:none для скрытия фрейма нельзя — Опера не позволит обратиться к такому фрейму. (Альтернативное работающее решение — position:absolute; visibility:hidden; width:0px; height:0px;.)
Запрос и получение данных при этом происходят асинхронным образом, чаще всего при помощи callback-функции, определяемой в контексте основной страницы:

// ф-я будет вызвана при получении данных от сервера  function frameCallback(data) {    // какие-то действия с полученными данными  }  

Когда скрипту нужно получить какие-то данные с сервера, он даёт команду на загрузку страницы в этот iframe:

window.frames[\'buffer\'].location = url; // url — GET-запрос к серверу  

Можно также использовать сабмит невидимой формы с target=\"buffer\". Это позволит передавать данные на сервер методом POST.

Сервер в ответ должен сформировать и вернуть страницу с JavaScript кодом, который вызовет callback-функцию:

<html>  <script>  parent.frameCallback(\"received data\");  </script>  </html>  

Преимущества

  • Очевидность реализации: просто IFRAME-первое, что приходит в голову.
  • Возможность отправлять в IFRAME данные произвольно формы (в том числе — динамически созданной), что решает проблемы с кодировками данных (все перекодирования выполняет браузер).

Недостатки

  • Засорение history браузера.
  • Проблемы с кроссбраузерностью: каждый браузер имеет свои собственные и крайне нестабильные особенности при работе с IFRAME.
  • Большие расходы памяти (фактически, каждый IFRAME — это отдельный маленький браузер).
  • Сложности в Opera: можно обратиться только к содержимому того IFRAME, при создании которого был указан атрибут src, совпадающий с именем текущего сайта.

XMLHttpRequest и ActiveX Microsoft.XMLHTTP

Dynamic HTML and XML: The XMLHttpRequest Object
Expanded XML Support in Internet Explorer 5

Преимущества

  • Компоненты используются по их прямому назначению.
  • Большая экономия памяти по сравнению с IFRAME.

Недостатки

  • Решения специфичны для IE и Mozilla/Firefox (в IE вообще не работает с выключенными ActiveX), в Opera поддержка есть только начиная с версии 8.

SCRIPT: Загрузка данных через динамически создаваемый тэг SCRIPT

Преимущества

  • Хорошая кроссбраузерность. Идентичный код и метод в разных браузерах (в том числе — работает в Opera).
  • Экономия памяти по сравнению с IFRAME.
    • Не портится history.
    • Метод не опирается на особенности браузеров и работает в IE5.0+, Mozilla 1.7+, Firefox 1.0+ и Opera 7.3+ (здесь «+» означает «в этой и более новых версиях»). Кроме того, не использует ни ActiveX, ни IFRAME.

Недостатки

  • Невозможно отправить на сервер очень много данных (ограничение на длину QUERY_STRING).
  • Необходимо в серверном скрипте работать с Unicode (в PHP для этого есть расширение iconv).
  • Браузеры по-разному работают с динамически созданными SCRIPT-тегами, поэтому кроссбраузерное решение содержит ряд хаков.
Услуги
Портфолио
BTL инфо
Администрирование
 
Дизайн
 
Программирование
 
htlm/dhtml
javascript
ajax
aps
flash action script
php
xhtml/wap
database
Поисковая оптимизация и раскрутка
 
Шаблоны
 
Программы
 
Контакты

УКР РУС ENG

  © 2005-2008 дизайн-студия myua.com.ua