15.06.2017, 20:44
|
Аспирант
|
|
Регистрация: 18.11.2013
Сообщений: 31
|
|
Рони,
А если запускать скрипт по нажатии на кнопку "показать еще", с задержкой секунды на три, будет работать?
|
|
15.06.2017, 21:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
Сообщение от EvgenStor
|
с задержкой секунды на три
|
зависит от скорости ответа сервера на эту кнопку и лучше в api кнопки.
|
|
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)
})
})
});
|
|
24.09.2017, 21:50
|
Аспирант
|
|
Регистрация: 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
|
|
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');
});
}
});
});
});
|
|
25.09.2017, 10:59
|
Аспирант
|
|
Регистрация: 18.11.2013
Сообщений: 31
|
|
Спасибо рони, работает! Только скорость обработки стала почему то на много медленней, если раньше процесс занимал примерно 3 сек. после появления содержимого сайта, то теперь доходит до 17 сек. Почему так?
|
|
25.09.2017, 11:22
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
EvgenStor,
потому что меняет страницу на много раз больше
|
|
25.09.2017, 11:44
|
Аспирант
|
|
Регистрация: 18.11.2013
Сообщений: 31
|
|
Рони, можно с этим что то сделать, что бы сократить время обработки? Отблагодарю денежным вознаграждением за твою помощь. А то придется возвратится к старому варианту, без ссылок, поскольку такая задержка сильно замедляет просмотр страниц. Я не думал, что исключение тегов из поиска замены так сильно скажется на производительности, скорее наоборот предполагал, если скрипт исключит лишнее будет работать быстрее.
|
|
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.
|
|
25.09.2017, 13:41
|
Аспирант
|
|
Регистрация: 18.11.2013
Сообщений: 31
|
|
Рони,
Стал работать чуть быстрее 9-10 сек на сайте. В редакторе 5-6 сек. http://plnkr.co/edit/8KZn07P7leNW8YA40BbZ?p=preview
Но стал переводить внутри слов Fuji FinePix > Fuji F вePix, Kompaktkamera > Ko мpakt Камера
Сайт у меня на https
|
|
|
|