http://mtaalamu.ru ru (http://mtaalamu.ru) (http://mtaalamu.ru) http://mtaalamu.ru http://mtaalamu.ru RPC на JavaScript /blog/coding/2433.html /blog/coding/2433.html yababay материал об удаленных процедурах, выполняемых с помощью фреймворка GWT. В то время эта технология действительно выглядела прорывом. Еще бы: клиентский и серверный код пишутся на одном и том же языке! Но за прошедшее время произошло много событий, которые побуждают меня всё чаще писать на чистом JavaScript, особенно там, где не требуется задействовать мощные библиотеки и API.

На стороне сервера использую Node.js, развивающийся в последние месяцы просто космическими темпами. На стороне же клиента — не менее интенсивно развивающийся jQuery, который, помимо возможности рисовать красивые интерфейсы, содержит мощные средства выполнения асинхронных запросов. Ну, а посредником между клиентом и сервером может выступать код в формате JSON (я и раньше его иногда использовал, в GWT для этого есть необходимые пакеты).

Вот как можно организовать передачу JSON-объекта на сервер. На стороне клиента:

var queryParams = {greeting: 'Hello, World!', someBool: true};
$.getJSON('/hello', queryParams, function(data){
     // асинхронный разбор прилетевшего с сервера JSON-объекта.
}


Как принять на стороне сервера (задействован пакет express):

app.get('/hello', function (req, res) {
    res.setHeader('Content-Type', 'application/json; charset=utf-8');
    var someObject = {
        replay: 'Воистину ' + req.query.greeting,
        yesOrNo: req.query.someBool
    };
    res.send(JSON.stringify(someObject));
}


Вот так, довольно бесхитростно. Учитывая то, что с сервера можно присылать довольно сложные объекты, этот метод вполне может заменить GWT в экспресс-проектах, когда городить огород некогда и незачем.]]>
Sat, 08 Dec 2012 23:43:52 +0400 JavaScript JSOW RPC GWT
Электронную таблицу - на веб-страницу /blog/coding/1965.html /blog/coding/1965.html yababay
В давние времена, когда электронные таблицы были еще зачастую консольными приложениями, широко использовался файловый формат CSV — Coma Separated Values (= значения, разделенные запятыми). Например, создадим такую таблицу:

]]>
Thu, 18 Aug 2011 23:00:47 +0400 GWT CSV JSON электронные таблицы
GWT: веб-страница с вкладками /blog/coding/1960.html /blog/coding/1960.html yababay

В GWT есть специальные классы для того, чтобы быстро такой макет реализовать: TabPanel и TabLayoutPanel.

TabLayout появился на ранних этапах развития GWT и всем, вроде, был хорош, за исключением того, что при реализации вкладок использовались тэги <table>, что в нынешнюю эпоху «дивной верстки» счтается некошерным. Поэтому TabPanel обозван в документации всякими нехорошими словами (типа «quirk» и чуть ли не «deprecated»).

TabLayoutPanel, появившийся в свежих версиях GWT (начиная с 2.0) и призванный прийти на замену TabPanel, формируется уже на чистых div'ах, но на него много жалуются разработчики: высота объекта получается фиксированной и если в отведенное пространство что-то не влезает, то просто подрезается, причем даже без появления полос прокрутки. Может от нас что-то скрывают, но найти корректного решения так и не удалось. Пришлось накидать собственный класс, который, кроме всего прочего, может считывать содержимое вкладок в формате JSON. Это очень удобно для управления контентом.
]]>
Tue, 16 Aug 2011 18:43:03 +0400 gwt tabpanel tablayoutpanel
Стыковка GWT и Jquery /blog/coding/1862.html /blog/coding/1862.html yababay
]]>
Sun, 05 Jun 2011 09:57:15 +0400 gwt jquery интеграция фреймворков
Гаджеты Google и GWT /blog/coding/1856.html /blog/coding/1856.html yababay
Как же устроен гаджет и как его изготовить?
]]>
Thu, 02 Jun 2011 22:15:51 +0400 гаджеты виджеты gwt
JSON вместо RPC /blog/coding/1807.html /blog/coding/1807.html yababay топик и лишний раз достоинства RPC описывать не стоит. Однако обнаружился у этой технологии и существенный недостаток: его практически невозможно использовать с сервером Apache Felix. Дело в том, что OSGi-модули должны включать в себя все необходимые классы, а jar-архив, отвечающий в GWT за RPC слишком велик, чтобы конвертировать его в бандл.

Что же делать? Гонять по сети данные в xml-формате, выковыривая их из DOM-объектов всякими экзотическими способами? К счастью есть более адекватная (и, что немаловажно, более компактная) технология, поддерживаемая в GWT: это JSON (Java Script Object Notation).

]]>
Sat, 07 May 2011 19:54:46 +0400 GWT JSON OSGi Apache Felix