Подтвердить что ты не робот

Буферы протокола для JavaScript?

Есть ли способ делать буферы протокола в JavaScript?

Почему для .js?

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

компромиссные:

  • protobuffs обеспечивает компактность, сериализацию и десериализацию скоростей.

  • текстовые протоколы (xml/json) имеют больший размер сообщения... но с javascript мне интересно, что более эффективно.

ссылка:

Дополнительные ссылки, предоставленные сообществом (подробнее см. ниже):

4b9b3361

Ответ 2

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-интерфейс протокола).

Ответ 3

Исторически javascript делал работу с бинарной болью, что, вероятно, частично объясняет относительную нехватку инструментов - но с массивами, набранными javascript, теперь может быть намного проще. Я согласен с тем, что если вам нужно получить тот же объем данных (через какой-то формат), использование меньшей пропускной способности - плюс, но прежде чем приступать к чему-либо, вам нужно будет проверить, что полоса пропускания/обработки была фактическим узким местом (и если полоса пропускания: вы сначала попробовали gzip/deflate).

Я поклонник protobuf - и я бы с радостью увидел более сильную технику для браузера, но json настолько вездесущ, что вам нужна убедительная причина, чтобы бросить вызов статус-кво. Также; подумайте "jsonp".