Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 15.06.2017, 20:44
Аспирант
Отправить личное сообщение для EvgenStor Посмотреть профиль Найти все сообщения от EvgenStor
 
Регистрация: 18.11.2013
Сообщений: 31

Рони,
А если запускать скрипт по нажатии на кнопку "показать еще", с задержкой секунды на три, будет работать?
Ответить с цитированием
  #32 (permalink)  
Старый 15.06.2017, 21:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от EvgenStor
с задержкой секунды на три
зависит от скорости ответа сервера на эту кнопку и лучше в api кнопки.
Ответить с цитированием
  #33 (permalink)  
Старый 15.06.2017, 21:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

EvgenStor, ниже это не код!!! а ...
$(function() {
    $.get("list.txt", function(data) {
        function fn() {
            [].forEach.call(document.querySelectorAll(".info"), function(elem) {
                var content = elem.innerHTML;
                data.replace(/^(.*?)\|(.*?)$/gm, function(a, b, c) {
                    content = content.replace(new RegExp("(^|\\s|\\b)(" + b.replace(/[\\\/()*+.?|]/g, "\\$1") + ")(\\.|\\s|\\b|&|$)", "igm"), "$1" + c + "$3")
                });
                elem.innerHTML = content
            })
        }
        fn();
        $("#page-more").on("click", "button", function() {
            window.setTimeout(fn, 3000)
        })
    })
});
Ответить с цитированием
  #34 (permalink)  
Старый 24.09.2017, 21:50
Аспирант
Отправить личное сообщение для EvgenStor Посмотреть профиль Найти все сообщения от EvgenStor
 
Регистрация: 18.11.2013
Сообщений: 31

Доброе время суток,
Подправьте пожалуйста регулярку в скрипте. Дело в том, что скрипт меняет текст не только между тегами но и в самих тегах, в следствии чего ссылки становятся нерабочими. Т.е. если в ссылке href="" попадается слово подходящее под замену оно меняется, но адреса такого естественно нет.
Исходная ссылка:
<a href="/search/Serie%3A%20Acer%20Jade/" rel="nofollow" class="eTag">Серия: Acer Jade</a>
Обработанная скриптом:
<a href="/search/Серия%3A%20Acer%20Jade/" rel="nofollow" class="eTag">Серия: Acer Jade</a>

Если возможно сделайте так, что бы скрипт обрабатывал только внутри любых тегов, т.е изменял содержимое между <любой тег>Текст для замены</любой тег>

http://plnkr.co/edit/5S7Mv9YVP5NcciACfPbO?p=preview
Ответить с цитированием
  #35 (permalink)  
Старый 24.09.2017, 22:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

EvgenStor,
http://plnkr.co/edit/U5pEBOR8wrWQa8D2H36K?p=preview

$(function() {
      $.get('list.txt', function(data) {
        [].forEach.call(document.querySelectorAll('.info'), function(elem) {
          var treeWalker = document.createTreeWalker(elem, NodeFilter.SHOW_TEXT, null, false);
          while (treeWalker.nextNode()) {
          var el = treeWalker.currentNode;
          data.replace(/^(.*?)\|(.*?)$/gm, function(a, b, c) {
          el.data = el.data.replace(new RegExp('(^|\\s|\\b)(' + b.replace(/[\\\/()*+.?|]/g, '\\$1') + ')(\\.|\\s|\\b|&|$)', 'igm'), '$1' + c + '$3');
          });
         }
        });
      });
    });
Ответить с цитированием
  #36 (permalink)  
Старый 25.09.2017, 10:59
Аспирант
Отправить личное сообщение для EvgenStor Посмотреть профиль Найти все сообщения от EvgenStor
 
Регистрация: 18.11.2013
Сообщений: 31

Спасибо рони, работает! Только скорость обработки стала почему то на много медленней, если раньше процесс занимал примерно 3 сек. после появления содержимого сайта, то теперь доходит до 17 сек. Почему так?
Ответить с цитированием
  #37 (permalink)  
Старый 25.09.2017, 11:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

EvgenStor,
потому что меняет страницу на много раз больше
Ответить с цитированием
  #38 (permalink)  
Старый 25.09.2017, 11:44
Аспирант
Отправить личное сообщение для EvgenStor Посмотреть профиль Найти все сообщения от EvgenStor
 
Регистрация: 18.11.2013
Сообщений: 31

Рони, можно с этим что то сделать, что бы сократить время обработки? Отблагодарю денежным вознаграждением за твою помощь. А то придется возвратится к старому варианту, без ссылок, поскольку такая задержка сильно замедляет просмотр страниц. Я не думал, что исключение тегов из поиска замены так сильно скажется на производительности, скорее наоборот предполагал, если скрипт исключит лишнее будет работать быстрее.
Ответить с цитированием
  #39 (permalink)  
Старый 25.09.2017, 13:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

EvgenStor,
заменить на это и
в строке 9 как можно точнее укажите где находится текст для перевода
$(function() {
    $.get("list.txt", function(data) {
        data = data.match(/^(.*?)\|(.*?)$/gm).map(function(b) {
            b = b.split("|");
            b[0] = new RegExp('(^|\\s|\\b)(' + b[0].replace(/[\\\/()*+.?|]/g, '\\$1') + ')(\\.|\\s|\\b|&|$)', 'igm');
            b[1] = '$1' + b[1] + '$3'
            return b
        });
        [].forEach.call(document.querySelectorAll(".info td, .info a"), function(elem) {
            data.forEach(function(b) {
                elem.textContent = elem.textContent.replace(b[0], b[1])
            })
        })
    })
});

Последний раз редактировалось рони, 25.09.2017 в 13:25.
Ответить с цитированием
  #40 (permalink)  
Старый 25.09.2017, 13:41
Аспирант
Отправить личное сообщение для EvgenStor Посмотреть профиль Найти все сообщения от EvgenStor
 
Регистрация: 18.11.2013
Сообщений: 31

Рони,
Стал работать чуть быстрее 9-10 сек на сайте. В редакторе 5-6 сек. http://plnkr.co/edit/8KZn07P7leNW8YA40BbZ?p=preview
Но стал переводить внутри слов Fuji FinePix > Fuji FвePix, Kompaktkamera > KoмpaktКамера
Сайт у меня на https
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
document.body.innerHTML.replace. Замена нескольких слов nule Общие вопросы Javascript 10 11.03.2015 16:14
RegExp, поиск набора слов Беляш Общие вопросы Javascript 10 30.01.2011 23:00
Поиск определённых слов в контенте Yellow79 Элементы интерфейса 5 14.05.2010 20:37
Поиск русских слов с помощью \b не проходит Jury Общие вопросы Javascript 2 18.03.2010 12:05
Замена слов в тексте Dan T Общие вопросы Javascript 8 18.03.2009 12:36