2016-01-20 3 views
-3

Можно ли отправить дополнительные данные, прикрепленные к HTTP-ответу через Java или Php?Объедините два ответа HTTP в один

Мой сайт - домашняя рабочая платформа: один пользователь вводит домашние задания в базу данных, и все пользователи могут видеть домашние задания на веб-сайте. Текущая загрузка очень неэффективна, так как браузер выполняет два запроса на загрузку eveything: один для индексного файла и один для домашних заданий. Для запроса домашних заданий клиент также отправляет настройки пользователя на сервер, на основе которого возвращаемые домашние задания генерируются скриптом Php.

Теперь, интересно, если возможно, объединить эти два запроса в один? Возможно ли обнаружить HTTP-запрос с помощью Java или Php на сервере, прочитать файлы cookie (где сохранены настройки), затем получить домашние задания из базы данных и отправить данные, прикрепленные к HTTP-ответу клиенту? Или, что еще лучше, сначала верните индексный файл и как можно скорее и данные домашней работы впоследствии в качестве второго ответа, потому что клиенту требуется некоторое время для разбора Html & построить DOM-дерево, если оно не может показать домашние задания так или иначе.

При просмотре веб-страниц я наткнулся на такие термины, как «Обработка на стороне сервера» и «SPDY», но я не знаю, являются ли они правильными отправными точками.

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

+0

«браузер выполняет два запроса на загрузку eveything: один для файла индекса и один для домашних заданий» - я не понимаю, что вы имеете в виду. Не могли бы вы разместить соответствующий код, чтобы показать, как это работает? – kittykittybangbang

+0

Поскольку домашние задания не являются статическим контентом, он должен получать их каждый раз из базы данных. Это делается с помощью запроса Ajax, который выполняет PHP-скрипт, который затем возвращает домашние задания, полученные из базы данных клиенту. Затем клиент добавляет домашние задания в Dom-tree. Веб-сайт можно найти здесь: aaron.filosofisch.com (на немецком языке) –

+0

По-прежнему нужна помощь. Это может быть сделано. – Misunderstood

ответ

0

Простым решением проблемы является инициализация ваших данных в индексном файле.

Вы должны создать объект javascript и вставить его прямо в html, отображаемый вашим сервером. Вы можете поместить этот объект в глобальное пространство имен (например, в window.initData), чтобы он мог получить доступ к коду в вашем скрипте.

<scipt> 
window.initData = { 
    someVariable: 23, 
}; // you could use json_encode if you use php, or Jackson if you use java 
</script> 

Однако, это не является большой проблемой, если ваши данные получены в отдельном запросе сервера. Особенно, когда требуется получить больше времени для извлечения данных из базы данных/веб-служб, вы можете обеспечить лучший пользовательский интерфейс, предварительно извлекая статический контент очень быстро и показывая счетчик, пока загружаются (более медленные) данные.

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