имеем такой скрипт для tampermonkey в chrome
который уже с Вашей помощью неоднократно был улучшен
скрипт// ==UserScript==
// @name New Userscript
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match *://*/*
// @grant none
// ==/UserScript==
window.addEventListener('load',setTimeout (function() {
'use strict';
// create a TreeWalker of all text nodes
var allTextNodes = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT),
// задаём переменные
text014 = /слова\s+слова/g,
text015 = /слова\s+слова\s+слова/g,
.............
// реально уже 350 переменных
............................
text149 = /слова\s+слова/g,
replaceValue = "слова",
ClearText = "";
// iterate through all text nodes
while (allTextNodes.nextNode()) {
replaceNodeText(allTextNodes.currentNode, text015, ClearText);
replaceNodeText(allTextNodes.currentNode, text016, replaceValue);
// приходится теже самые 350 строк добавлять чтоб сменилось
replaceNodeText(allTextNodes.currentNode, text147, ClearText);
replaceNodeText(allTextNodes.currentNode, text148, replaceValue);
}
function replaceNodeText(node, search, replaceText)
{
node.nodeValue = node.nodeValue.replace(search, replaceText);
}
},600), false);
с чем нужна помощь:
1) допустим я откажусь от ClearText и все text*** переменные надо будет сменить на replaceValue
Как отказаться от 350 строк
replaceNodeText(allTextNodes.currentNode, text***, replaceValue) а свести всё к "одной" в которой все text*** будут заменены на replaceValue?
2) как все text*** заключить в какие-то "нужные кавычки" чтоб считались типа элементами массива чтобы в п.1 не было привязки к цифрам? и чтоб сколько в дальнейшем этих text не добавляй п.1 был бы валидным?
3) уже "факультативно" а если совместить п.1 и п.2 но не отказываться от ClearText (а равное и replaceValue чтоб больше чем одно)
Как в строку типа
text014 = /слова\s+слова/g, не знаю через какой символ(ы) добавить переменную на которую следует менять, а если этой добавки нет, то чтоб как в п.1 менять на replaceValue
всё это в попытке ускорить или понять почему на разных сайтах где одинаково дофига текста так по разному себя ведёт скрипт?
например на ленте и газете меньше секунды а на sport-express.ru больше 30ти на заглавных страницах
а в символах ну никак не на порядки разница. может сама концепция TreeWalker уже не самая быстрая? и есть
более-лучше варианты? (не забываем что 350+ проверок\замен)