Ru-Board.club
← Вернуться в раздел «Web-программирование»

» Задержка для поискового скрипта

Автор: D1D1D1D
Дата сообщения: 19.08.2016 01:20
Привет!
Есть мощный поисковый скрипт, который ищет по заданному в нем списку на 12 тысяч строк (можно и ещё увеличить). Ускорил его работу за счёт разбиения базы на множество JS-файлов по 250 строк и подключая их через document.write). А вопрос касается увеличения задержки во время ввода запроса, наличие которой, как думается, снизило бы некоторое подвисание, в том числе при увеличении количества строк. То есть, нужна настройка, чтобы код не пытался выдавать результаты немедленно по мере набора.

http://rusfolder.net/files/45224412
Автор: Mavrikii
Дата сообщения: 19.08.2016 02:23
D1D1D1D
может перестанете создавать кучу тем по одному своему скрипту?
задержка выполняется с помошью функции setTimeout
http://javascript.ru/settimeout
Автор: D1D1D1D
Дата сообщения: 19.08.2016 05:24
Mavrikii
Это совсем другой скрипт, а у того (из другой темы) потолок был — тысяча строк. То есть, в первой теме обсуждался он, вторая содержала вопрос вообще по такого рода скриптам, а эта — рассматривает уже другой скрипт, под другим углом)) И всё-таки, сам я не въеду))
Автор: Mavrikii
Дата сообщения: 19.08.2016 06:13
D1D1D1D

Цитата:
И всё-таки, сам я не въеду

работает же вроде.
эм.. а не проще все погрузить в виде js массива и уже с ним работать.
размер этого

Цитата:
document.write('<tr><td><a href="#АБАЖУР">АБАЖУР</A></td></tr>');

сократится просто до 'АБАЖУР'
К примеру первый файл можно переписать как
[more]
Код: var data = ['АБАЖУР','АБАЗИНСКИЙ','АБАЗИНЫ','АББАТ','АББАТИCА','АББАТСТВО','АББРЕВИАТУРА','АБЕРРАЦИЯ','АБЗАЦ','АБИССИНСКИЙ','АБИССИНЦЫ','АБИТУРИЕНТ','АБОНЕМЕНТ','АБОНЕНТ','АБОНИРОВАТЬ','АБОРДАЖ','АБОРИГЕН','АБОРИГЕННЫЙ','АБОРТ','АБОРТИВНЫЙ','АБРАЗИВ','АБРАКАДАБРА','АБРЕК','АБРИКОС','АБРИКОСОВЫЙ','АБРИС','АБСЕНТЕИЗМ','АБСОЛЮТ','АБСОЛЮТИЗМ','АБСОЛЮТНЫЙ','АБСТРАГИРОВАТЬ','АБСТРАГИРОВАТЬСЯ','АБСТРАКТНЫЙ','АБСТРАКЦИОНИСТ','АБСУРД','АБСУРДНЫЙ','АБХАЗСКИЙ','АБХАЗСКО-АДЫГЕЙСКИЙ -ая -ое','АБХАЗЫ','АБЫ','АВАНГАРД','АВАНГАРДИЗМ','АВАНГАРДИСТ','АВАНЗАЛ','АВАНЛОЖА','АВАНПОРТ','АВАНПОСТ','ABAHC','ABAHCOM','АВАНСЦЕНА','АВАНТЮРА','АВАНТЮРИЗМ','АВАНТЮРИСТ','АВАНТЮРИСТИЧЕСКИЙ','АВАНТЮРИСТИЧНЫЙ','АВАРИЙНОСТЬ','АВАРИЙНЫЙ','АВАРИЯ','АВАРСКИЙ','АВАРЦЫ','АВГИЕВ','АВГУСТ','АВИА','АВИАМОДЕЛИЗМ','АВИАМОДЕЛИСТ','АВИАМОДЕЛЬ','АВИАНОСЕЦ','АВИАНОСНЫЙ','АВИАПОЧТА','АВИАСАЛОН','АВИАТОР','АВИАЦИЯ','АВИЗО','АВИТАМИНОЗ','ABOCb','АВОСЬКА','АВРАЛ','АВСТРАЛИЙСКИЙ','АВСТРАЛИЙЦЫ','АВСТРАЛОИДНЫЙ','АВСТРИЙСКИЙ','АВСТРИЙЦЫ','АВСТРОАЗИАТСКИЙ','АВСТРОНЕЗИЙСКИЙ','АВТАРКИЯ','АВТО','АВТО','АВТО','АВТОБАЗА','АВТОБИОГРАФИЧЕСКИЙ','АВТОБИОГРАФИЧНЫЙ','АВТОБИОГРАФИЯ','АВТОБЛОКИРОВКА','АВТОВОКЗАЛ','АВТОГЕН','АВТОГЕННЫЙ','АВТОТРАФ','АВТОГУЖЕВОЙ','АВТОДОРОЖНЫЙ','АВТОЗАВОД','ABTOKAP','ABTOKJIAB','АВТОЛ','АВТОМАТ','АВТОМАТИКА','АВТОМАТИЧЕСКИЙ','АВТОМАТИЧНЫЙ','АВТОМАШИНА','АВТОМОБИЛИЗМ','АВТОМОБИЛИСТ','АВТОМОБИЛЬ','АВТОМОДЕЛИЗМ','АВТОМОДЕЛИСТ','АВТОМОДЕЛЬ','АВТОМОТРИСА','АВТОНОМИЯ','АВТОНОМНЫЙ','АВТОПОГРУЗЧИК','АВТОПОИЛКА','АВТОПОРТРЕТ','ABTOP','АВТОРЕФЕРАТ','АВТОРИЗОВАТЬ','АВТОРИТАРИЗМ','АВТОРИТАРНЫЙ','АВТОРИТЕТНЫЙ','АВТОРУЧКА','АВТОСАЛОН','АВТОСЕРВИС','АВТОСТОП','АВТОСТРАДА','АВТОСЦЕПКА','АВТОТРАКТОРНЫЙ','АВТОТРАНСПОРТ','АВТОХТОННЫЙ','ABTOXTOHbI','АВТОЦИСТЕРНА','АГА','ATABA','АГАТ','АГЕНТ','АГЕНТСТВО','АГЕНТУРА','АГИТ','АГИТАТОР','АГИТАЦИЯ','АГИТИРОВАТЬ','АГИТКА','АГИТПУНКТ','АГЛИЦКИЙ','АГНЕЦ','АГНОСТИК','АГНОСТИЦИЗМ','АГОНИЗИРОВАТЬ','АГОНИЯ','АГРАРИЙ','АГРАРНЫЙ','АГРЕГАТ','АГРЕССИВНЫЙ','ATPECCOP','АГРИКУЛЬТУРА','АГРО','АГРОКУЛЬТУРА','AГPOHOM','АГРОНОМИЯ','АГРОПРОМЫШЛЕННЫЙ','АГРОТЕХНИК','АГРОТЕХНИКА','АГРОХИМИК','АГРОХИМИЯ','АГУ','АД','АДАЖИО','АДАМОВ','АДАПТАЦИЯ','АДАПТИТОВАТЬ','АДВЕНТИСТ','АДВОКАТ','АДВОКАТУРА','АДЕКВАТНЫЙ','АДЕПТ','АДЖАРСКИЙ','АДЖАРЦЫ','АДМИНИСТРАТОР','АДМИНИСТРИРОВАТЬ','АДМИРАЛ','АДМИРАЛТЕЙСТВО','АДОВ','АДРЕС','АДРЕСАТ','АДРЕСОВАТЬ','АДРЕСОВАТЬСЯ','АДСКИЙ','АДЪЮНКТ','АДЪЮНКТУРА','АДЪЮТАНТ','АДЫГЕЙСКИЙ','АДЫТЕЙЦЫ','АДЫТИ','АЖ','АЖИОТАЖ','АЖИТАЦИЯ','АЖУР','АЖУРНЫЙ','АЗАЛИЯ','АЗАРТ','АЗАРТНЫЙ','АЗЕРБАЙДЖАНСКИЙ','АЗЕРБАЙДЖАНЦЫ','АЗИАТСКИЙ','АЗИАТЫ','АЗИМУТ','АЗОТ','АЗУ','АИСТ','АИСТИХА','АЙ','АЙБОЛИТ','АЙВА','АЙДА','АЙМАК','АЙСБЕРГ','АКАДЕМИЗМ','АКАДЕМИК','АКАДЕМИЧЕСКИЙ','АКАДЕМИЧНЫЙ','АКАДЕМИЯ','AKATb','АКАФИСТ','АКАЦИЯ','АКВА','АКВАЛАНГ','АКВАЛАНГИСТ','АКВАМАРИН','АКВАМАРИНОВЫЙ','AKBAHABT','АКВАПАРК','АКВАРЕЛИСТ','АКВАРИУМ','АКВАТОРИЯ','АКВЕДУК','АККЛИМАТИЗИРОВАТЬ','АККОМОДАЦИЯ','АККОМПАНЕМЕНТ','АККОМПАНИАТОР','АККОМПАНИРОВАТЬ','Исполнять','АККОРД','АККОРДЕОН'];
for(var i = 0; i < data.length; i++)
    document.write('<tr><td><a href="#' + data[i] + '">' + data[i] + '</A></td></tr>');
Автор: D1D1D1D
Дата сообщения: 19.08.2016 14:07
Mavrikii
Большое спасибо за идею с массивом и за timeout — сразу не докумекал)) С массивом производительность заметно повысилась. Сокращать количество разбитых файлов не стал, потому что иначе при запуске (если открывать HTML-файл через "hh.exe", имитируя работу в CHM) может выводится сообщение о чрезмерной работе скрипта, а так — видимо, чем больше фрагментов, тем больше нагрузка распределяется))

Ещё подумалось, что для поиска среди подобного объёма хорошо бы настройку начала перебора минимум после ввода трёх букв, — с выводом записи в случае отсутствия результатов (чтоб не думалось :-).
Автор: Mavrikii
Дата сообщения: 19.08.2016 23:43
D1D1D1D
можно вообще весь массив запихнуть в страницу, а потом делать поиск именно по нему, а не по элементам страницы. и результаты поиска уже выводить в нужном виде (но не через document.write, так как он не работает после загрузки страницы)
Автор: D1D1D1D
Дата сообщения: 20.08.2016 13:17
Mavrikii
И это даст прирост производительности?
Автор: Mavrikii
Дата сообщения: 20.08.2016 21:39
D1D1D1D

Цитата:
И это даст прирост производительности?

да
Автор: D1D1D1D
Дата сообщения: 21.08.2016 14:01
Конечно, интересно. Имеется ли пример подобной реализации, чтобы можно было повторить?
Автор: Mavrikii
Дата сообщения: 22.08.2016 21:26
D1D1D1D

Цитата:
чтобы можно было повторить

ваш скрипт элементарно переделывается под работу с массивом.

Страницы: 1

Предыдущая тема: Ищу C# программиста (Питер)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.