В настоящее время я разрабатываю сайт для крупной компании, которая продает товары.У них есть обширный каталог с множеством параметров поиска и фильтров, которые - на данный момент - требуют некоторого времени для вычисления и рендеринга (около 1-2 с).Я не могу ускорить этот процесс, поскольку мне нужно проверить каждый фильтр и вернуть правильный результат.
Поэтому, когда я нажимаю флажок, чтобы применить параметр фильтрации, веб-сайт зависает (вкладка «Производительность» в ChromeDev Tools показывает мне, что движок JS довольно занят).Я боюсь, что потенциальный пользователь будет продолжать нажимать несколько раз - вместо того, чтобы терпеливо ждать - пока двигатель занят, что приводит к разочаровывающему ожиданию, заканчивающемуся галочкой-галочкой и без применения фильтрации.Я также пытался обернуть трудоемкие операции в new Promise
, но все равно он не отвечал и, в конце концов, зависал браузером таким же образом.
Так что мне нужно задать два вопроса:
- Есть ли способ запретить дальнейший ввод данных пользователем, пока Vue вычисляет результаты (и, возможно, применяет экран «загрузки»? Мои попытки сделать это, помещая конкретные инструкции в началеметода / вычисленного и до фактического тела функции, не были успешными)
- Если бы я использовал рендеринг на стороне сервера с Vue, как бы он себя вел?Будет ли он все еще зависать в течение этой 1 секунды, ожидая полезной нагрузки сервера, или это будет сравнимо с
Promise
функцией?
Я не знаю, если я прояснил проблему, (Я надеюсь, что мой английский правильный, хотя, возможно, и технически неправильный, поскольку я ??) , если есть некоторые данные, которые я пропустил, я могу с радостью исправить.