2013-04-13 2 views
1

Я пишу GAE webapp используя Python 2.7, webapp2 и Jinja. В разработке я запускаю приложение под PyCharm 2.7.1 на Max OSX 10.7.5 (Lion). В настоящее время я использую Chrome 26.0.1410.43 в качестве своего браузера.В PyCharm обновления веб-страниц в режиме отладки, а не в режиме запуска

Я не знаю точно, что это проблема PyCharm, но это мое лучшее предположение. Вот описание:

Когда я использую элемент «Отладка» для запуска приложения, веб-страницы обновляются автоматически при перемещении с одной страницы на другую. То есть, если я начну со страницы A, перейдите на страницу B, сделайте некоторое действие, которое изменит то, что должно выглядеть A, и вернитесь к A, появится изменение.

Однако, когда я использую элемент управления «Запуск» для запуска приложения без каких-либо изменений, веб-страницы не обновляются автоматически. В этом же сценарии, когда я вернусь к A, появится старая версия этой веб-страницы. Мне нужно щелкнуть элемент управления обновлением браузера, чтобы просмотреть обновленную страницу.

Пожалуйста, расскажите, как остановить отображение браузером кэшированных страниц в режиме запуска. Я еще не пробовал опубликовать это на нашем сайте GAE, и, надеюсь, этого там не произойдет, но мне нужен режим запуска для производительности в учебном видео, которое я создаю.

Спасибо за любые предложения!

+0

Я думаю, что я видел ту же проблему с Chrome - похоже, она кэширует страницу. Что происходит, когда вы идете вперед и назад, а не обновляете страницу? В конечном итоге загружает новую страницу для A? –

ответ

0

Оказалось, что это не проблема обновления или кэширования, а проблема синхронизации. В некоторых случаях GAE использует алгоритм обновления, который вызывает задержку до применения транзакций. В режиме «Запуск» запрашивается новая страница до завершения обновления; в режиме отладки достаточно времени для завершения обновления.

Одним из решений было бы изменить архитектуру хранилища данных, чтобы исключить прочтение устаревшей версии данных, но это вызвало другие, более серьезные проблемы.

Еще одно решение состояло в том, чтобы включить задержку сплит-секунд после обновления, но до отображения обновленной записи. Не идеально, так как невозможно понять, как долго эта задержка должна быть, но пока это было удовлетворительно.

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