RPC на JavaScript
Года три назад я написал материал об удаленных процедурах, выполняемых с помощью фреймворка GWT. В то время эта технология действительно выглядела прорывом. Еще бы: клиентский и серверный код пишутся на одном и том же языке! Но за прошедшее время произошло много событий, которые побуждают меня всё чаще писать на чистом JavaScript, особенно там, где не требуется задействовать мощные библиотеки и API.
На стороне сервера использую Node.js, развивающийся в последние месяцы просто космическими темпами. На стороне же клиента — не менее интенсивно развивающийся jQuery, который, помимо возможности рисовать красивые интерфейсы, содержит мощные средства выполнения асинхронных запросов. Ну, а посредником между клиентом и сервером может выступать код в формате JSON (я и раньше его иногда использовал, в GWT для этого есть необходимые пакеты).
Вот как можно организовать передачу JSON-объекта на сервер. На стороне клиента:
Как принять на стороне сервера (задействован пакет express):
Вот так, довольно бесхитростно. Учитывая то, что с сервера можно присылать довольно сложные объекты, этот метод вполне может заменить GWT в экспресс-проектах, когда городить огород некогда и незачем.
На стороне сервера использую 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 в экспресс-проектах, когда городить огород некогда и незачем.
YUI Compressor: сжимаем JavaScript файлы
Про обезжириватели JavaScript уже был топик. Вот, кстати, решение на Java.
developer.yahoo.com/yui/compressor/
Скачиваем архив здесь:
yuilibrary.com/downloads/#yuicompressor
В архиве в директории build будет уже собранный jar файл. Запускаем его так:
Без ключа --nomunge код будет немножечко обфусцирован.
developer.yahoo.com/yui/compressor/
Скачиваем архив здесь:
yuilibrary.com/downloads/#yuicompressor
В архиве в директории build будет уже собранный jar файл. Запускаем его так:
java -jar yuicompressor-x.y.z.jar --type js --charset utf-8 --nomunge --preserve-semi --disable-optimizations исходный-скрипт.js -o сжатый-скрипт.js
Без ключа --nomunge код будет немножечко обфусцирован.
- 0
- 04 июня 2011, 21:52
- 1
Кастомные маркеры для Google Maps
Проекты, в которых используется Google Maps хочется украшать оригинальными маркерами (иконками, отмечающими трек). Казалось бы, маленькое изображение можно нарисовать и самостоятельно, но программировать маркер не так просто, как кажется. Нужно предусмотреть тень, активную зону (по которой кликают) и т.п.
Один хороший человек создал online-сервис для генерирования маркеров. От рисования иконки он не освобождает, но вот тень и javascript-код формируются автоматически, и это экономит много времени.
Один хороший человек создал online-сервис для генерирования маркеров. От рисования иконки он не освобождает, но вот тень и javascript-код формируются автоматически, и это экономит много времени.
- +8
- 09 мая 2011, 12:09
- комментировать
JSMin: обезжириватель JavaScript
Понадобилось уменьшить размер javascript-файла, в котором не менее половины объема занимают подробные комментарии, указания на лицензию и т.п. Гугление привело к удивительному результату: оказывается, утилита для этой цели написана неким Дугласом Крокфордом еще в 2001 году и почти без изменений используется многими даже весьма серьезными веб-программистами до наших дней. А почему бы и нет, если алгоритм до безобразия прост: программе нужно лишь удалить лишние пробелы и комментарии. Называется это чудо весьма романтично — JSMin.
На сайте выложен бинарник для MS-DOS(!), но поскольку программа чрезвычайно проста, ее можно за несколько секунд откомпилировать для Linux не меняя ни строчки кода. Исходник можно взять здесь, далее все просто:
Пользоваться так:
Пропущенный через JSMin js-файл «похудел» раз в 5-6. Меня такой показатель вполне устраивает.
На сайте выложен бинарник для MS-DOS(!), но поскольку программа чрезвычайно проста, ее можно за несколько секунд откомпилировать для Linux не меняя ни строчки кода. Исходник можно взять здесь, далее все просто:
gcc -o jsmin jsmin.c ; sudo mv jsmin /usr/bin
Пользоваться так:
jsmin < fat.js > mini.js
Пропущенный через JSMin js-файл «похудел» раз в 5-6. Меня такой показатель вполне устраивает.
- +4
- 09 мая 2011, 00:41
- 1