Регистрация    Вход    Форум    Поиск    FAQ

  •  Новости
  • Beeline + Twitter = чирикай через SMS!

    Beeline + Twitter = чирикай через SMS! На первой картинке обозначены команды, при помощи которых через SMS Вы сможете кого-либо зафолловить или же отписаться, ретвитнуть чей-либо пост или же написать личное сообщение.

    Open Graph Protocol. От создателей Facebook

    Open Graph Protocol. От создателей Facebook Разбираясь с Facebook API, случайно наткнулся на другую интересную разработку от этих людей.

    Глобальное ускорение Wordpress

    Глобальное ускорение Wordpress Не считая очевидных решений типа отключения некоторых плагинов и перехода на тему попроще, я вижу 2 пути для оптимизации: кэширование и сжатие траффика.




  •  Часы


  •  Поиск

Optimaze » Программирование » Динамическое обновление страницы с помощью Ajax. Updater




Динамическое обновление страницы с помощью Ajax. Updater



    Разработчики часто создают запросы к серверу для получения фрагментов HTML и обновления содержимого страницы. В Prototype это легко организовать с помощью Ajax. Request и коллбэка onComplete, но с помощью Ajax. Updater это еще проще!

     

    Предположим, в нашем HTML-документе есть следующий код:

     

    <h2>Our fantastic products</h2>

    <div id="products">(fetching product list from server… )</div>

    Контейнер products пустой, и мы хотим заполнить его с помощью Ajax-запроса. Нет проблем:

     

    new Ajax. Updater(‘products’, ‘/some_url’, { method:‘get’ });

    Это все, больше ничего делать не нужно. Аргументы аналогичны Ajax. Request, за исключением первого аргумента – идентификатора контейнера. По завершении запроса Prototype автоматически обновит содержимое элемента с помощью метода Element. update().

     

    Если сервер возвращает HTML, содержащий скрипты, по умолчанию они будут вырезаны. Если вы хотите, чтобы они выполнялись, вам нужно установить опцию evalScripts в true.

     

    Однако, что будет в том случае, если во время запроса возникнет ошибка?

    Чаще всего вы не хотели бы показывать сообщение об ошибке там, где пользователь ожидает увидеть данные. К счастью, в Prototype и это предусмотрено – вы можете указать не один контейнер, а два, передав их первым параметром в виде хэша: { success: 'products', failure: 'errors' }. Данные будут отображены в контейнере success, а сообщение об ошибке – в контейнере failure. Такое разделение сделает ваши интерфейсы более удобными для пользователя.

     

    Возможно, вы захотите обновлять содержимое контейнера не полностью, а добавлять данные в начало или в конец с помощью методов Insertion. Top или Insertion. Bottom. Это тоже возможно, просто укажите желаемый метод добавления в параметре insertion:

     

    new Ajax. Updater(‘products’, ‘/some_url’, {

      method: ‘get’,

      insertion: Insertion. Top

      });

    Ajax. Updater будет использовать указанный метод при изменении содержимого контейнера products. Все просто.

     

    Периодические запросы с Ajax. PeriodicalUpdater

     

    Ajax. Updater – это здорово, но иногда нужно обновлять элемент регулярно, через определенный промежуток времени. В Prototype есть возможность и для этого - объект Ajax. PeriodicalUpdater, который вызывает Ajax. Updater с указанной периодичностью.

     

    new Ajax. PeriodicalUpdater(‘products’, ‘/some_url’,

      {

        method: ‘get’,

        insertion: Insertion. Top,

        frequency: 1,

        decay: 2

      });

    Новые параметры - это frequency и decay. frequency – это количество секунд между запросами. В приведенном примере запросы будут выполняться каждую секунду. По умолчанию этот параметр равен 2 секундам.

     

    Конечно, пользователи будут довольны динамичностью интерфейса, но с другой стороны сервер будет испытывать большую нагрузку, если несколько пользователей будут одновременно просматривать страницы с периодическим обновлением. Поэтому существует второй параметр decay – это коэффициент, на который умножается частота запроса, если сервер возвращает один и тот же ответ, т.е. данные не изменяются.

    В таком случае в нашем примере первый запрос будет сделан через секунду, второй – уже через 2, третий – через 4, и так далее. И напротив, если сервер будет постоянно возвращать разные ответы, этот параметр вообще не окажет никакого эффекта.

     

    Использование коэффициента decay заметно снижает нагрузку на сервер. Вы можете поэксперементировать с этим параметром и посмотреть, как он влияет на производительность, выключить его, установив в 1 (значение по умолчанию), или просто не указывать.



    Рейтинг: 4.5/5, основан на 25 голосах.


    Нравится



    Вернутся назад


       

    Вам будет интересно:

    Доступ к статическим полям в Spring.NET

    Часто при конфигурации приложения через Spring. NET xml-файл требуется присвоить какому-то свойству значение статического поля определенного класса.

    Создание нестандартных настроек WP-темы

    Объясню, в частности, как организовать загрузку файла юзера, с последующим использованием его в теме.

    Алгоритм Брезенхема

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

    Восстановление NTFS в Ubuntu

    После перезагрузки Убунту заругалась и отказалась монтировать диск – мол, ошибки в структуре.



    •  Публикации


    8 методов раскрутки своего форума с нуля

    8 методов раскрутки своего форума с нуля Итак, у вас имеется свой собственный форум, но его никто не посещает? Мы готовы помочь вам справиться с этой нелегкой проблемой.

    Как привлекать посетителей на проект

    Как привлекать посетителей на проект Данная статья в основном рассчитана на тех, кто самостоятельно занимается продвижением своего проекта.

    Про MySQL, серверы и PayPal

    Про MySQL, серверы и PayPal Проклял все настройки кодировок, проклял DirectAdmin и еле-еле нашел то место где располагается и задается общий пароль для ...

    Реклама в Твиттере. Как подать свой продукт

    Реклама в Твиттере. Как подать свой продукт Твиттер уже давно стал из нового web 2. 0 сервиса рекламной площадкой с огромным количеством потенциальных пользователей ...

    Пока блог на локалхосте

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

    Авторитет блоггера притягивает

    Авторитет блоггера притягивает Долго не знал с чего начать данную статью. Статья что-то типа мыслей вслух и философии.