Иногда появляется необходимость динамически изменять иконку сайта – favicon, например, в чатах, при получении нового сообщения, при завершении продолжительной операции и др.
Иногда появляется необходимость динамически изменять иконку сайта – favicon, например, в чатах, при получении нового сообщения, при завершении продолжительной операции и др.
Большим препятствием для запуска скриптов, которые выполняются продолжительное время, является тот факт, что в JavaScript нет многопотоковой обработки. Это значит, что окно браузера не отвечает на события пользователя до тех пор, пока выполняющийся скрипт не закончит своей работы. Следовательно, скрипты, которые выполняются 1, 2 или более секунд, "замораживают" пользовательский интерфейс, что не совсем приятно для пользователя.
Кроме того, браузеры имеют ограничение на продолжительность выполнения скриптов. Если скрипт выполняется дольше лимита, предостовляемого браузером для выполнения, то появляется окно, предлагающая прервать выполнение скрипта.
О проблемах несовместимости браузеров, я думаю, известно каждому. В данной статье я рассмотрю проблемы несовместимости браузеров и их решения при работе с событиями в JavaScript.
Одной из основных проблем при использовании AJAX является невозможность навигации при помощи кнопок BACK и FORWARD, а также функций history.back(), history.go() и др., потому что изменения в веб странице, которые осуществляются через AJAX никак не отображаются на объекте History. Кроме того, страницы, полученные с использованием AJAX, невозможно добавлять в закладки.
Эти проблемы можно решить при помощи утилиты Browser History Manager, входящей в состав библиотеки YUI. Она позволяет создавать веб приложения с полностью функциональным объектом History, а также возможностью сохранять другие параметры состояния приложения, например, информацию о том, какие панели или кнопки на странице активны.
О том, насколько важна оптимизация скриптов JavaScript, можно судить из сравнения с производительностью других языков программирования. JavaScript приблизительно в 5000 раз медленнее в сравнении с языком C, в 100 раз медленнее Java и в 10 раз медленнее Perl. Ниже представлены несколько простых методик увеличения производительности скриптов:
JSToolbox создан на основе WordPress