2015-01-28 2 views
0

Если я выберу код доступа к базе данных, мои веб-страницы обрабатываются через несколько мс. Когда добавляется код доступа к базе данных, запросы идут до 400 мс +.Отправьте начало HTML-страницы страницы на сервер, ожидая базы данных

Возможно ли отправить верхнюю часть страницы браузеру, ожидая возвращения в базу данных?

Просто, чтобы доказать, что это возможно ...

enter image description here

enter image description here

+1

Пожалуйста открыть разработчику инструменты ... и проверить, завершил ли ваш браузер ваши теги или нет? – Pio

+0

Да, он заполнил теги. –

+0

А как насчет этого парня? Кажется, он не использует запросы Ajax, чтобы «видеть обновленный экран после каждой секунды». http://www.c-sharpcorner.com/UploadFile/deveshomar/improving-Asp-Net-performance-using-response-bufferoutput/ –

ответ

1

Marko делает именно то, что вы ищете:

Он предлагает 3 основные функции, которые позволяют прогрессивную визуализацию:

  1. Поточный Шаблон Rendering - Так что ваш HTML отправляется рано и буферы очищаются часто
  2. Async Рендеринг фрагментов html - Марко будет управлять ожиданием, буферизацией и в конечном итоге рендерингом
  3. Вне рендеринга рендеринга - Marko по желанию может отправить данные шаблона, как только он будет доступен м API вызовы или БД запросов, то это будет изменить порядок HTML на стороне клиента

Я просто сделал скринкаст на Марко, что вы могли бы оказаться полезными:

http://knowthen.com/episode-8-serving-content-in-koajs-with-marko/

+0

Ага ... жаль, что я сейчас использую Джейд. –

+0

Было бы неплохо, если бы вы могли сделать это с Джейд, но я не верю, что есть способ ... Вид большого недостатка в Джейд и почти каждый другой механизм шаблонов nodejs. –

+0

Невозможно ли написать фрагмент HTML в поток ответов и очистить его до продолжения запроса в соответствии с нормальным с Jade? –

1

Вы должны немедленно вернуть свои взгляды и заполнить свои данные с помощью некоторых асинхронных api вызовов (с использованием ajax вызовов), срабатывающий дБ запросы. Когда вы получите результаты из базы данных, вы можете отправить их. В качестве альтернативы вы можете разбить свои запросы и вернуть куски своих данных, если это имеет смысл.

+0

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

+0

@IanWarburton: вам нужно отправить полный, но пустой, html-документ (например, , а затем использовать асинхронные вызовы, чтобы обновить его, поскольку результаты приходят или завершаются. –

+0

Пожалуйста, взгляните на эти страницы (например, на Facebook). Проверьте, сколько у вас запущено ajax-запрос. Он загружен для загрузки дополнительных данных. Вы также можете прочитать об этом [здесь] (http://docforge.com/wiki/Web_application/Progressive_loading). – Pio

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