PHP JQuery MySQL Refesh Instant
Я сделал прогресс лист, который будет обновляться от 1 до 30 пользователей в течение дня. Он управляется PHP и jQuery, и все данные хранятся в базе данных mySql.
На живом сервере это происходит довольно медленно, потому что я делаю запрос по поискам и фильтрам. Мне было интересно, где лучше всего хранить результаты, потому что мне нужны только последние обновления, но мне не нужно постоянно фильтровать и обновлять.
Можно ли хранить такого рода данные в сеансе или кого еще я могу сохранить, чтобы избежать полного запроса при каждом изменении / поиске или при изменении страницы?
1 ответ
Я заглянул в memcached, но в итоге я его переработал.
Я использовал jQuery для фильтрации записей, используя hide() и show() по соответствующим атрибутам данных, вместо использования SQL-запроса "LIKE '%Darren%'". Это увеличивает нагрузку на пользовательский терминал, а не на мой сервер (постарайтесь свести анимацию к минимуму, чтобы потребление памяти было низким).
Затем я сохраняю отметку времени последнего обновления на пользовательском терминале в HTML, а затем периодически выполняю запрос "SELECT id FROW progress WHERE updated > '2014-02-20 16:54:30' LIMIT 1”. Если я получаю 1 запись назад, я использую Ajax для полного обновления и обновляю области, необходимые свежим HTML.
Делая это таким образом, вы сделали это намного быстрее и плавнее.
Я, как это помогает, если вам нужно больше информации, дайте мне знать!