Будет ли разделение результатов поиска на несколько страниц улучшать время конечного пользователя?
Технология базы данных сайта: MySQL + PHP
Предположим, что пользователь сети выполнил поиск по запросу, который дал 10 000 результатов поиска. Из этих 10 000 результатов предположим, что 25% из этих результатов были новыми виджетами, 25% использовались виджетами, а оставшиеся 50% были компаниями, которые обслуживают эти виджеты.
Q1. Можно ли запрограммировать функцию поиска, чтобы сначала получать и отображать новые виджеты (25% от общего количества результатов поиска), чтобы к тому времени, когда пользователь имел возможность просматривать их, остальные 2 файла HTML (оставшиеся 75% итоговые результаты) были найдены, обработаны и готовы к просмотру?
Q2. Улучшит ли это время конечного пользователя, разделив результаты поиска на 3 отдельных файла HTML?
1 ответ
Q1: да, может. Вы можете делать выборку и форматировать информацию "обычным" способом, а также использовать поток для сбора и форматирования остальной информации. Не совсем тривиально, потому что:
- пользователь может попытаться перейти на следующую страницу, прежде чем она будет отображена
- несколько пользователей (или даже один и тот же пользователь на нескольких вкладках) могут выполнять поиск одновременно, поэтому необходимо отслеживать, какая информация принадлежит какому поиску
- когда удалять файлы (или какую-либо поддержку, которую вы используете) после того, как пользователь закончит их просмотр... или если пользователь решит не просматривать их
- если пользователь долго просматривает другие файлы, данные могут измениться
- ...
Я хотел бы попытаться оптимизировать процесс, чтобы получить информацию "по требованию" вместо (без фонового процесса). в любом случае, 2500 результатов поиска кажутся очень большими. собираются ли пользователи перемещаться по всему этому?
Q2: да, поскольку вы разделяете процесс на несколько небольших задач. но опять же, я бы порекомендовал получать информацию так, как она запрашивается, вместо того, чтобы извлекать и отображать информацию в фоновом режиме.