2012-05-28 2 views
1

Я даю async Sinatra попытку и возникли проблемы.Async_Sinatra блокируется только при запросе со вкладки браузера

При использовании следующего простого кода:

require 'sinatra' 
require 'sinatra/async' 

Sinatra.register Sinatra::Async 

aget '/delay/?' do 
    logger.info "Connected" 
    EM.add_timer(5) { body {"delayed for 5 seconds" } } 
end 

Это прекрасно работает, когда я одновременно запросить/задержки/с абами, принимая 5 секунд для всех запросов.

Он блокирует, однако, когда я запрашиваю/задерживаю/изнутри 2 вкладки Chrome (или Firefox), и он выполняется последовательно, в результате чего второй запрос занимает 10 секунд.

Забавно, что запрос с нескольких вкладок Safari выполняется снова (параллельно).

Любая идея, что может быть причиной такого поведения?

Gem Версия:

gem 'sinatra', "~> 1.3.2" 
gem "eventmachine", "1.0.0.beta.4.1" 
gem 'thin', "~> 1.3.1" 
gem "async_sinatra", "~> 1.0.0" 

ответ

0

UPDATE: Похоже, что кэш браузера, это то, что причина этого как для Firefox и Chrome. Для любого URL-адреса может быть только одна активная запись кеша. Добавление параметра запроса действительно исправит это.

Multiple Ajax requests for same URL

Смежные вопросы