2013-09-16 2 views
-1

Я разработал сайт HTML5, PHP/MySQL, который использует 1 локальную и 1 удаленную базу данных MySQL. Когда пользователь регистрируется на сайте, ему предоставляется «Домашняя страница», которая отображает (в зависимости от пользователя) от 1 до 10 jQuery tabs.Загрузка нескольких файлов PHP одновременно для ускорения загрузки страницы

Каждая вкладка выполняет команду включения PHP, которая включает в себя отдельный блок кода, который открывает дескриптор БД удаленной БД, извлекает результат SQL, обрабатывает и закрывает его, открывает дескриптор локальной базы данных, извлекает SQL результат, процессы, которые и закрывают его, затем выводит таблицу HTML. Затем эта таблица отображается на вкладке.

Проблема заключается в том, что при наличии нескольких вкладок в шоу (4+) время загрузки страницы становится немного медленным, иногда до 10 секунд. Сайт находится на хост-сервере, который, как я полагаю, имеет быстрое соединение с удаленным БД (в отличие от моей установки разработки XAMPP).

Есть ли способ ускорить загрузку страницы?

Я думал о том, как сделать содержимое каждой вкладки iframe, которая откроет соответствующий блок кода «table making» для этой вкладки. Конечно, это означало бы, что для главной страницы с 5 вкладками браузер будет эффективно открывать 6 страниц (Домашняя страница и 5 вкладок, которые сами по себе являются независимыми страницами).

Или существует более интеллектуальный способ достижения более быстрой загрузки страницы?

+0

Это зависит от того, как вы обрабатываете соединение с базой данных? Возможно, если вы постоянно создаете новое соединение, может быть полезно только создание этого и использование его на четырех вкладках. – christopher

+2

Не имеет значения для _guess_, что является узким местом в вашем случае, вам нужно будет измерить производительность одного шага, чтобы узнать, где имеет смысл инвестировать время. Один общий подход, хотя, вероятно, заключается в сокращении числа требуемых сообщений. Подумайте об использовании некоторого слоя кеширования. – arkascha

+0

Я открываю и закрываю соединения с базами данных для содержимого каждой вкладки. Это вызывает накладные расходы, но упрощает код, поскольку одна вкладка может не нуждаться в результатах SQL другого, и легче разделить код таким образом без каких-либо зависимостей между вкладками. Я проверил тесты времени на блоках кода вкладки, и кажется, что множественный доступ к удаленной БД является основным замедлением, поэтому я думал, что использование iframes (которое, по общему признанию, я еще не пробовал), может быть ответом. – Genosword

ответ

1

Вы используете сеансы? Это может быть блокировка сеанса. Вызовите session_write_close() как можно скорее.

+0

Спасибо за отзыв session_write_close(), но каждый блок кодов вкладок не открывает и закрывает сеансы, только «Домашняя страница» открывает сеанс, а затем включает блоки кода вкладок по мере необходимости. – Genosword

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