Посты с тегом javascript
28
мая
2008

JavaScript фреймворки теперь можно хостить на Google

В блоге AJAX Search API вчера был проанонсирован AJAX Libraries API. Суть состоит в том, что Google теперь позволяет всем желающим использовать JavaScript фреймворки, размещенные на их серверах. Сам API представляет собой простой в использовании механизм для подключения к НТМL-документам наиболее популярных JS-библиотек, среди которых jQuery, prototype, script.aculo.us, MooTools и dojo. Список, по всей видимости, будет расширяться.

Подключить необходимую библиотеку можно двумя способами. Первый — тривиальный, с помощью HTML-элемента script.

<script src="http://ajax.googleapis.com/
    ajax/libs/prototype/1.6.0.2/prototype.js"></script>


Как не сложно догадаться, вместо prototype/1.6.0.2 можно указать название любого другого фреймворка и его версии.

Второй способ более гибок. С помощью специального JS-метода google.load() можно задавать версию библиотеки не точно, а по первым цифрам.

<script src="http://www.google.com/jsapi"></script>
<script>
google.load("prototype", "1.6");
// …
</script>

Заданное в примере значение «1.6» означает то, что будет автоматически выбрана самая свежая версия prototype в ветке 1.6. Таким образом, AJAX Libraries API может обеспечить автообновление JS-библиотек без каких-либо изменений в вызывающем скрипте (естветсственно, такое обновление ограничивается пределами нужной ветки).

К основным плюсам использования AL API можно отнести следующие:

  • Хранение скриптов на Google в некоторой степени снижает нагрузку на собственный веб-сервер.
  • Скорость загрузки страниц увеличивается, благодаря переносу части запросов на другой хост и поддержке gz-сжатия.
  • При массовом использовании централизованно-хранимых фреймворков, кэш браузеров используется эффективнее. Файл, загруженный для одного веб-приложения, может быть повторно использован при работе с другим, использующим тот же фреймворк. Пока это лишь потенциальный бенефит сервиса, но, тем не менее, приятный.
  • Кроме того, благодаря Google можно облегчать дистрибутивы веб-приложений, использующих JS-фреймворки.

Ссылки по теме

11
мая
2008

Приручаем Орфус

Развлечением вчерашнего вечера (а заодно и информационным поводом для этого поста) стала имплантация в paradigm.ru системы выявления ошибок Orphus. Процесс прошел успешно, хотя и не так гладко, как предполагалось.

В последней версии Орфуса появилась возможность комментировать найденные ошибки, для чего по нажатию Ctrl-Enter в середине страницы появляется форма с текстовым полем. И все бы хорошо, но она позиционируется не в середине клиентской области окна браузера, а в геометрическом центре страницы. Соответственно, если страница длинная, вертикальный скролл неуместно передергивается при передаче фокуса в строку ввода.


Скриншот с форума, на котором окно орфуса появилось за пределами видимой области страницы

Глюк описан на форуме и, по всей видимости, происходит не всегда, а только при наличии каких-то особенностей в коде страницы. Готового решения там я не нашел, поэтому пришлось ковырять код самому (при всей моей нелюбви к JavaScript).

По ходу дела выяснилось, что Орфус — совсем даже не опен сорс и его код обфусцирован до почти полной нечитаемости. В результате, вместо того чтобы все по-человечески исправить, моего терпения хватило только на quick and dirty patch: добавил в начало две функции для правильного определения координат и использовал их при позиционировании.

На мой взгляд, если уж с позиционированием div возникают такие сложности, более простым и переносимым решением было бы использование popup окон браузера — так ведь тоже можно отправлять сообщения об ошибках без перезугрузки страницы.

Не имею понятия, можно ли распространять видоизмененный Орфус, поэтому ссылку на починенную версию приведу здесь только для демонстрации (: (все права разработчика сохранены). В ближайшее время отпишу автору. Будем надеяться, в следующей версии доработка надфилем уже не понадобится.

Ссылки по теме

  • Грамотность on-line, или Использование системы Orphus — статья про Орфус в «Куроводстве» Дмитрия Котерова.
  • Cross Browser Window Size And Centering — две неплохие функции на JavaScript, одна из которых определяет размеры окна, а другая — находит координаты центра. Работают вроде бы во всех актуальных версиях главных браузеров.