Ответ 1
Я искал protobuf для javascript. Здесь есть проект: https://github.com/dcodeIO/ProtoBuf.js
Есть ли способ делать буферы протокола в JavaScript?
Почему для .js?
Если вы думаете о требованиях к науке на какое-то время, возникают ситуации, когда вы можете отправить большой блок данных клиенту. С CRUD-стилем это не имеет большого значения, что вы используете. С научным материалом это имеет значение (по крайней мере, я думаю, что это так).
компромиссные:
protobuffs обеспечивает компактность, сериализацию и десериализацию скоростей.
текстовые протоколы (xml/json) имеют больший размер сообщения... но с javascript мне интересно, что более эффективно.
ссылка:
code.google.com/p/protobuf-plugin-closure
Буферы протокола Google или что-то подобное для .net/javascript
http://www.vitaliykulikov.com/2011/02/gwt-friendly-protocol-buffers.html
http://benhakala.blogspot.com/2010/05/converting-google-protocol-buffers-to.html (ссылается на карты Google, возможно используя protobufs)
Дополнительные ссылки, предоставленные сообществом (подробнее см. ниже):
Я искал protobuf для javascript. Здесь есть проект: https://github.com/dcodeIO/ProtoBuf.js
Google активно использует протокольные буферы в JS (GMail и т.д.) через свою Библиотеку Closure, генерируя JS-код с измененным protoc
(к сожалению, не открытым исходным кодом) (его, вероятно, придется портировать на protoc
до открытия с открытым исходным кодом).
Apache Wave (клиентский Webapp-сервер с GWT) также использует протокольные буферы для связи с сервером, генерируя Java-код, отражая классы Java, созданные с помощью protoc
(это PST, aka protobuf-stringtemplate, подпроект).
Ранее Wave использовал protostuff (и я не знаю, почему они переключились на собственное решение, я подозреваю, что PST происходит от того, что оригинальная Google Wave использовала, а protostuff был только промежуточным шагом во время перехода к open-source).
В качестве побочного примечания я начал изучать использование буферов протокола на стороне браузера некоторое время назад: http://blog.ltgt.net/exploring-using-protobuf-in-the-browser/ и http://blog.ltgt.net/using-protobuf-client-side-with-gwt с некоторым почти рабочим кодом в http://code.google.com/p/protobuf-gwt/, который вы можете захотеть воскресить.
Наконец, ведется работа над тем, чтобы прокси-серверы GWT RequestFactory были совместимы с Java-классами на стороне сервера, сгенерированными с помощью protoc
(и вы могли бы использовать расширение protoc
или аналогичный подход к Wave PST для создания прокси-запросов RequestFactory). Это должно быть возможно, если вы используете строителей полностью на стороне сервера (что не совсем так, как был разработан Java API-интерфейс протокола).
Исторически javascript делал работу с бинарной болью, что, вероятно, частично объясняет относительную нехватку инструментов - но с массивами, набранными javascript, теперь может быть намного проще. Я согласен с тем, что если вам нужно получить тот же объем данных (через какой-то формат), использование меньшей пропускной способности - плюс, но прежде чем приступать к чему-либо, вам нужно будет проверить, что полоса пропускания/обработки была фактическим узким местом (и если полоса пропускания: вы сначала попробовали gzip/deflate).
Я поклонник protobuf - и я бы с радостью увидел более сильную технику для браузера, но json настолько вездесущ, что вам нужна убедительная причина, чтобы бросить вызов статус-кво. Также; подумайте "jsonp".