Спасибо за код, dbr . Просто небольшая опечатка в long_poller.htm вокруг строки
1000 /* ..after 1 seconds */
Я думаю, что это должно быть
"1000"); /* ..after 1 seconds */
чтобы он заработал.
Для тех, кто заинтересован, я попробовал эквивалент Django. Начните новый проект Django, скажем lp для длительного опроса:
django-admin.py startproject lp
Позвоните в приложение msgsrv для сервера сообщений:
python manage.py startapp msgsrv
Добавьте следующие строки в settings.py , чтобы иметь шаблонов каталог:
import os.path
PROJECT_DIR = os.path.dirname(__file__)
TEMPLATE_DIRS = (
os.path.join(PROJECT_DIR, 'templates'),
)
Определите шаблоны URL в urls.py следующим образом:
from django.views.generic.simple import direct_to_template
from lp.msgsrv.views import retmsg
urlpatterns = patterns('',
(r'^msgsrv\.php$', retmsg),
(r'^long_poller\.htm$', direct_to_template, {'template': 'long_poller.htm'}),
)
И msgsrv / views.py должно выглядеть так:
from random import randint
from time import sleep
from django.http import HttpResponse, HttpResponseNotFound
def retmsg(request):
if randint(1,3) == 1:
return HttpResponseNotFound('<h1>Page not found</h1>')
else:
sleep(randint(2,10))
return HttpResponse('Hi! Have a random number: %s' % str(randint(1,10)))
Наконец, шаблоны / long_poller.htm должны быть такими же, как указано выше, с исправленной опечаткой. Надеюсь, это поможет.