Асинхронные методы передачи браузер → сервер

очевидное

  • AJAX–запрос на «url?param». Выполняется вручную через XMLHttpRequest, либо различные библиотеки — jQuery, ExtJS, protototype.js, JSHttpRequest.
  • скрытый iframe с управлением location — очень просто, но не кроссбраузерно, и жрёт много памяти (т.к. по сути это ещё одно окно браузера), оставляет следы в истории браузера, а так же появляется индикатор загрузки страницы.
  • динамическое создание объекта или скрипта с src = «url?param» — не очень удобно, но кроссбраузерно.

сокеты

  • WebSockets в html5, плюс обёртка над ним socket.io — наверное, самое родное для nodejs
  • флеш-скрипты (имеют реализацию сокетов), либо jssockets — удобная обёртка над флешовыми функциями сокетов.

экзотика

  • Long polling (оно же — Comet), например через JSONP.
  • nowjs — надстройка над socket.io для RPC. Опасность выстрела в ногу.
  • нефинализированный jpeg — остаётся открытый канал передачи, который можно использовать в своих целях. Сложно использовать, возможны утечки памяти.

Следующее задание — ограничение скорости вызова функций.