Как выполнить некоторый javascript, когда пользователь выходит из Google с другой вкладки?

У меня есть приложение appengine, которое работает с системой ведения журнала Google. Услуги, которые я предлагаю, основаны на учетной записи пользователя и привязаны к ней (например, сохранение работы пользователя в его учетной записи).

Я заметил, что мое приложение ломается, когда пользователь выходит из службы Google на другой вкладке (например, Gmail). При возвращении на вкладку моего веб-сайта все больше не работает, пользователь также выходит из системы.

Я хотел бы знать, когда пользователь выходит из системы и выполняет некоторый код javascript, не выполняя опрос в моем приложении, что увеличит затраты на appengine.

Какие решения у меня есть для этого?


person Sebastien    schedule 10.09.2013    source источник


Ответы (2)


Вы можете использовать Channel API и открыть канал, который ожидает сообщения, когда вы выходите из системы.

Однако вызовы Channel API довольно дороги, поэтому это может оказаться дороже.

Самый дешевый способ — вернуть определенный код ошибки, если вы вышли из системы, и обрабатывать этот код ошибки во всех ваших вызовах AJAX.

person dragonx    schedule 10.09.2013
comment
Боюсь, что это может быть самый дешевый способ, которым я могу пойти. Я подожду немного, чтобы увидеть, является ли их ответ лучшим. - person Sebastien; 11.09.2013

Вы не можете обойтись без опроса, если не напишите расширение браузера, которое предупреждает вашу вкладку (сложно и зависит от марки браузера). Поведение, которое вы видите, ожидаемо. Они выходят из своей учетной записи Google, а не с веб-сайта. Вы также можете опросить только тогда, когда пользователь выбирает вашу вкладку, а не всегда.

person Zig Mandel    schedule 10.09.2013