Продукты 20K с помощью автозавершения, хотите создать статические файлы JavaScript

Вместо меня поражающий базу данных каждый раз, когда кто-то вводит символ в поле поиска, я хочу создать статические .js файлы.

Что является некоторыми методами, которые я могу использовать для создания статических .js файлов, которые являются в основном массивами для загрузки, jQuery автоматически заполняют плагин с.

Мой sku's продукта похож:

ABC1234  

или

Alpha Beta C 1234

(abc является краткой формой для названия производителя, в то время как 'Альфа-Бета C' является подробной формой, сопровождаемой 3-4 числами).

5
задан Blankman 11 February 2010 в 04:15
поделиться

3 ответа

Это отличный вариант использования JSON. Обозначение объекта Javascript. Вы можете просто включить файлы JS, и все ваши данные будут помещены в объекты.

http://www.json.org

var products = [{sku:'aaaa', price: 50}, {sku:'bbbb', price: 60}];

Пожалуйста, проверьте мой синтаксис, он по памяти.

2
ответ дан 15 December 2019 в 06:25
поделиться

Вы также можете отправить все оставшиеся возможности в JSON через AJAX вызов только после 2/3 нажатий клавиш и извлечь оставшиеся результаты из этого объекта/массива (я не знаю, поддерживает ли JQuery такое поведение). Это экономит пропускную способность, так как не вся ваша база данных должна быть отправлена клиенту, и вам не придется обращаться к базе данных более одного раза (как правило, если первые нажатия были правильными).

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

1
ответ дан 15 December 2019 в 06:25
поделиться

Вы можете построить минимизированный конечный автомат (например, DAWG), который содержит конечные узлы для всех ваших существующих кодов продуктов. Затем сохраните это в некотором оптимизированном формате в строке Javascript (или небольшом количестве строк).

Эти строки затем могут быть отправлены в сжатом виде в браузер, вероятно, загрузка не займет много времени.

Затем вы можете пройти по конечному автомату в зависимости от количества уже набранных символов и эффективно найти все коды продуктов, которые начинаются с этих символов.

Я бы так и поступил.

Или можно просто загрузить весь словарь, потому что 20k - это не так уж и много. Я написал игру на Javascript, которая загружала словарь большего размера, и это не было настоящей проблемой.

0
ответ дан 15 December 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: