20K продуктов, использующих автозаполнение, хотят создавать статические файлы JavaScript - PullRequest
5 голосов
/ 11 февраля 2010

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

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

Sku моего продукта выглядит так:

ABC1234  

или

Alpha Beta C 1234

(abc - это краткая форма для названия производителя, а «Alpha Beta C» - это длинная форма, за которой следуют 3-4 цифры).

Ответы [ 3 ]

2 голосов
/ 11 февраля 2010

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

http://www.json.org

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

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

1 голос
/ 11 февраля 2010

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

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

0 голосов
/ 11 февраля 2010

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

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

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

Вот так я и сделаю.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...