Обзор JavaScript-библиотечек

Небольшой обзор популярных JavaScript-библиотечек для динамических интерфейсов и Ajax. Рассматриваются Dojo, Prototype, Mochikit, и Yahoo UI. Надо сказать, что все библиотечки, кроме Prototype, довольно громоздкие. И если вы не собираетесь делать веб-почту на Ajax-е или типа того, можно обойтись одним Prototype.

В Prototype есть практически всё, и даже больше: функции для быстрого обращения к элементам, для работы с массивами и т.п. В некоторых случаях лучше использовать ещё более простые библиотечки, например AdvancedAjax. В ней собрано только самое необходимое, т.е. только функции для удобной работы с XMLHTTPRequest. Я пользовался ей пару раз, и остался вполне доволен  (посмотреть можно например на этом сайте (на ней сделано добавление ЖЖ-авторов). Весит эта библиотечка меньше 20 Кб и особой нагрузки не создаст. Для примера — Prototype весит в 3 раза больше (около 60 Кб), а остальные намного больше, чем Prototype!

Обработчик формы для отправки почты через HTTPRequest на AdvancedAjax выглядит примерно так (делал для своего предыдущего сайта):

function initform() {
advAJAX.assign(document.getElementById("fmsg"), {
    onSuccess : function(obj) {
 if(obj.responseText==1) {
  document.getElementById("mres").innerHTML="Письмо ушло.";
  document.getElementById("fmsg").style.display="none"; }
 else
  document.getElementById("mres").innerHTML="Произошла ошибка!"; 
},
    onError : function(obj) {
  document.getElementById("mres").innerHTML="Произошла ошибка!";
 }
});
}

Он назначается в body-onload и вот собственно и всё, кроме того, что php-скрипт в параметре формы action должен возвращать статус в виде 1 или 0.

Опубликовано 27.08.06 11:00 в Программирование.
  • http://sattu.livejournal.com sattu

    jquery.com

    он мне больше по душе, чем перечисленый выше.

  • http://yatsenko.ru Сергей Яценко

    Спасибо! Посмотрел — впечатляет.

  • http://ouch.kiev.ua Влад

    Да, jQuery — библиотека то, что доктор прописал. Как увидел, сразу «подсел». Удобно — до безобразия :)
    Почти любая проблема — в одну две строчки решается :) порой проще, чем на голом яваскрипте (ну, по-крайней мере, мне :)