Найти - Пользователи
Полная версия: пре рендер
Начало » Django » пре рендер
1
despair4
страничка перед отображением ждет подгрузки на веб сервер данных с апи сервера до 1-10 секунд в зависимости от объема данных

сейчас оказалось, что иногда может потребоваться несколько запросов к апи серверу, для полного формирования веб странички

можно ли в джанго как то по простому формировать страничку по частям?

( за кончилась первая подгрузка данных отобразилась краткая информация по ним и тд, потом как закончилась вся подгрузка данных отобразилась полная информация по данным в браузере)
FishHook
Это задача клиента, а не сервера - просите данные аяксом и перерисовываете страничку по мере поступления ответов. То есть джанга не при чем, это вопрос по джаваскрипту и его фреймворкам.
despair4
FishHook
То есть джанга не при чем

до того как я начал переностить сервер на джангу, мне удавалось на basehttpserver выдавать страничку частями, по мере получения сервером данных:

                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

я думал в жданге можно сделать что то подобное

зы щас все силы бросил на изучения джанги, аякс и js боюсь что в ближайщий месяц не потяну
FishHook
аривидерчи,
можно из батона, вязальных спиц и двух презервативов сделать троллейбус.
Вперед!
При чем тут Джанго?
despair4
FishHook
При чем тут Джанго?

не знаю, думал джанго тоже как то по частям позволяет формировать страницу
despair4
наткнулся случайно:

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.

правда не понял как им пользоваться
PooH
despair4
наткнулся случайно: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. правда не понял как им пользоваться
Его надо вернуть из вьюхи, вместо HttpResponse. А при создании ему отдается генератор возвращающий строки. Вот пример. Но учтите, вы все равно будете иметь проблемы с производительностью. Приложение обслуживает клиентов в ограниченное число потоков, и если каждый будет ждать по 1-10 секунд ответа от API, в какой-то момент свободные потоки кончатся. Я бы подумал либо о кешировании ответов API, либо о переводе части, работающей со сторонним API, на что нибудь асинхронное, на то же торнадо, например(оно, кстати, и со стримингом лучше справится).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB