Использование Map
определенно будет быстрее, чем работа с массивами. Но что-то здесь не подходит ... даже при поиске 1000 элементов Javascript должен делать это очень быстро. Я думаю, у вас может быть БОЛЬШАЯ реактивная перерисовка вместо небольшого обновления DOM.
Используете ли вы свойство key
для каждой строки в таблице?
Механизм селектора jQuery (грубо) работает, используя существующий код выбора / манипуляции DOM Javascript. Насколько мне известно, никто не создал что-то подобное в Haskell, и, вероятно, на то есть веские причины. Это легко сделать с помощью Javascript из-за DOM и существующей функциональности, но в Haskell у вас нет большой потребности в этом, и при этом это не особенно просто.
Что касается написания этого самостоятельно, вы просто будете делать много неприятного разбора XML. Если вы можете привести страницу в XHTML, вы можете разобрать ее как XML; затем вы можете выбрать, основываясь на том, есть ли у узла дочерние элементы, есть ли у узла заданный атрибут, каков сам элемент и т. д.
Может быть, тогда вы просто ищете библиотеку XML! Если это работает для вас, я бы порекомендовал HaXml. Я' Я использовал его только дважды, но мне понравилось. Впрочем, ничего похожего на это приложение.
Посмотрите на модуль Xtract из HaXml. Там есть инструмент командной строки с тем же именем, чтобы проверить его.