@Fox ну вот счётчик яши развлекается со шрифтами, покушаясь на мою анонимность. Хотелось бы разобраться с этим топорно, заменить "что надо" и всё...
wg = "monospace;sans-serif;serif;Andale Mono;Arial;Arial Black;Arial Hebrew;Arial MT;Arial Narrow;Arial Rounded MT Bold;Arial Unicode MS;Bitstream Vera Sans Mono;Book Antiqua;Bookman Old Style;Calibri;Cambria;Cambria Math;Century;Century Gothic;Century Schoolbook;Comic Sans;Comic Sans MS;Consolas;Courier;Courier New;Garamond;Geneva;Georgia;Helvetica;Helvetica Neue;Impact;Lucida Bright;Lucida Calligraphy;Lucida Console;Lucida Fax;LUCIDA GRANDE;Lucida Handwriting;Lucida Sans;Lucida Sans Typewriter;Lucida Sans Unicode;Microsoft Sans Serif;Monaco;Monotype Corsiva;MS Gothic;MS Outlook;MS PGothic;MS Reference Sans Serif;MS Sans Serif;MS Serif;MYRIAD;MYRIAD PRO;Palatino;Palatino Linotype;Segoe Print;Segoe Script;Segoe UI;Segoe UI Light;Segoe UI Semibold;Segoe UI Symbol;Tahoma;Times;Times New Roman;Times New Roman PS;Trebuchet MS;Verdana;Wingdings;Wingdings 2;Wingdings 3".split(";"), wk = v(function(a) { a = cb(a)("canvas"); var c = n(a, "getContext"); if (!c) return null; try { var b = B(c, a)("2d"); b.font = "72px mmmmmmmmmmlli"; var d = b.measureText("mmmmmmmmmmlli").width; return function(e) { b.font = "72px " + e; return b.measureText("mmmmmmmmmmlli").width === d } } catch (e) { return null } }),Есть ли более быстрый способ проверки наличия элемента в списке
-
Нужно периодически проверять некоторое количество ссылок на наличие в списке.
Неполное совпадение тоже считается (например в списке есть example.com/link, значит для example.com/link/1/, example.com/link?x=1&y=2 и т. п. положительный результат, для example.сom/URL - отрицательный)
База данных, normalize URL и модуль список -> "содержит" на точное совпадение, regex намертво вешают BAS, если в списке или очереди на проверку много ссылок. Единственный относительно рабочий - класть весь список в переменную и через if ([[LIST]]).lastIndexOf([[LINK]]) >= 0 проверять, что тоже вешает скрипт, но спустя некоторое время результат все же выдает. Есть ли какой-нибудь более быстрый/надежный способ? -
@adsffdsa можно пробовать сторонние средства не поставляемые в бас.
базы данных, инструменты командной строки, веб/локальные-серверы тп.
можно попробовать реализовать через node.js, пайтон и др. ЯПнапример можно попробовать использовать альтернативные ram db.
-
@adsffdsa said in Есть ли более быстрый способ проверки наличия элемента в списке:
Есть ли какой-нибудь более быстрый/надежный способ?
Если в изначальном списке присутствуют разные домены, можно использовать объект для эффективного разделения и быстрого доступа к ссылкам по доменам. Сначала можно обратиться к объекту по ключу домена, чтобы получить список ссылок для этого домена.
Затем можно применить lastIndexOf для проверки конкретной ссылки.Пример структуры объекта:
const domainLinks = { "example.com": ["example.com/link", "example.com/anotherlink"] };function linkExists(domain, link) { if (!domainLinks[domain]) return false; return domainLinks[domain].lastIndexOf(link) !== -1; } // Пример использования: const domain = "example.com"; const linkToCheck = "example.com/link"; if (linkExists(domain, linkToCheck)) { console.log("Found."); } else { console.log("Not found"); }P.S.
Можно использовать встроенные средства БД для таких запросов, если данные хранятся там.