Как мне предотвратить получение chrome ‘Aw snap!’ с помощью Comet?

#php #javascript #jquery #google-chrome #comet

#php #javascript #jquery #google-chrome #comet

Вопрос:

Я использую Google Chrome для тестирования, потому что в будущем страница comet будет загружена во встроенном Google Chrome.

Примерно через 12 часов, я полагаю, файл comet становится слишком большим, и chrome получает официальный:страница aw snap

Как мне предотвратить сбой Chrome, который, как кажется, происходит после того, как страница была открыта так долго?

Нужно ли обновлять iframe?

Что я пробовал, так это использовать скрипты comet каждые 2 минуты, которые я делаю $('script').remove() , поэтому я предполагаю, что это удаляет их из DOM, но файл все еще становится больше…

Кто-нибудь может помочь? ^_^

я предоставлю столько кода, сколько потребуется, если меня попросят. (js или php)

Комментарии:

1. Вы обязаны использовать comet? Не могли бы вы вместо этого воспользоваться встроенным в chrome классом WebSocket?

2. Я не пробовал это, но может быть полезно для php и Chrome: code.google.com/p/phpwebsocket

3. @Tom мы не можем использовать websocket из-за проблем с безопасностью

4. Какие проблемы безопасности присутствуют в websocket?

5. @alexy13, просто почитай wiki: en.wikipedia.org/wiki/WebSockets и просто найдите в Google проблемы с безопасностью websocket, и вы найдете в нем много информации

Ответ №1:

Я бы попытался перезапустить Comet через некоторое время. Один час или меньше.

Удалите iframe, который вы используете, и appendChild() создайте новый.

Комментарии:

1. @ZJR вот о чем я думал, но как часто следует обновлять comet, один час кажется слишком частым, нет?

2. Я чувствую, что это зависит от вашего приложения. Учитывая, к каким вещам я бы применил comet (быстрые взаимодействия), 1 час может быть большим. В любом случае, трудно сказать, что именно происходит после 12 часов запуска. Возможно, вы столкнулись с каким-то ограничением времени работы стека TCP / IP или с каким-то ограничением памяти Chrome . Если это TCP, тот же Google Chrome на другой ОС может не вызывать такой же проблемы. Если это память, то время обновления зависит от того, сколько данных вы фактически отправляете в своем потоке comet. Может быть, вы можете это измерить?

3. @ZJR что ж, я собираюсь пробовать каждые два часа и посмотреть, будет ли он работать в выходные. если это не приведет к сбою, я вернусь к u. мой код comet выводит по крайней мере один тег script каждую секунду

4. @ZJR на данный момент ваш ответ, похоже, сработал ^_^, я вернусь к этому latr сегодня, запустив тесты

5. @ZJR, я вернулся к нему 19 часов спустя, и он разбился, когда я попытался его использовать. (в консоли)