Форум сайта python.su
страничка перед отображением ждет подгрузки на веб сервер данных с апи сервера до 1-10 секунд в зависимости от объема данных
сейчас оказалось, что иногда может потребоваться несколько запросов к апи серверу, для полного формирования веб странички
можно ли в джанго как то по простому формировать страничку по частям?
( за кончилась первая подгрузка данных отобразилась краткая информация по ним и тд, потом как закончилась вся подгрузка данных отобразилась полная информация по данным в браузере)
Офлайн
Это задача клиента, а не сервера - просите данные аяксом и перерисовываете страничку по мере поступления ответов. То есть джанга не при чем, это вопрос по джаваскрипту и его фреймворкам.
Офлайн
FishHook
То есть джанга не при чем
handler.send_response(200) handler.end_headers() #name=pilot.get_name_by_pilot_id(path[2]) handler.wfile.write("""<html><head><title>{} </title></head> <body> </body></html>""".format(name)) print "send header ",time.time()-t j=get_json_pilot(characterID=path[2]) print "get json ",time.time()-t handler.wfile.write(html_kills_loss_time(pilotID=path[2], kills_data=j)) print "kill loss ",time.time()-t handler.wfile.write(html_corp_link(pilotID=path[2], kills_data=j, host=handler.headers.get("host"))) print "send corp link ",time.time()-t #time_slice(kills=j) handler.wfile.write(kill_time(kills=j)) print "time slice ",time.time()-t handler.wfile.write(html_json(kills_data=j, host=handler.headers.get("host"))) print "send html jsona ",time.time()-t
Отредактировано despair4 (Окт. 4, 2014 13:30:15)
Офлайн
аривидерчи,
можно из батона, вязальных спиц и двух презервативов сделать троллейбус.
Вперед!
При чем тут Джанго?
Офлайн
FishHook
При чем тут Джанго?
Офлайн
наткнулся случайно:
The StreamingHttpResponse class is used to stream a response from Django to the browser. You might want to do this if generating the response takes too long or uses too much memory.
правда не понял как им пользоваться
Офлайн
despair4Его надо вернуть из вьюхи, вместо HttpResponse. А при создании ему отдается генератор возвращающий строки. Вот пример. Но учтите, вы все равно будете иметь проблемы с производительностью. Приложение обслуживает клиентов в ограниченное число потоков, и если каждый будет ждать по 1-10 секунд ответа от API, в какой-то момент свободные потоки кончатся. Я бы подумал либо о кешировании ответов API, либо о переводе части, работающей со сторонним API, на что нибудь асинхронное, на то же торнадо, например(оно, кстати, и со стримингом лучше справится).
наткнулся случайно:The StreamingHttpResponse class is used to stream a response from Django to the browser. You might want to do this if generating the response takes too long or uses too much memory. правда не понял как им пользоваться
Офлайн