как разбить строку на части?!
доброго вмени суток
Есть проблема у меня есть строка с данными которая обрабатывается jq как сделать так чтобы скрипт брал дынные из по частям .... ПРИЧИНА: строка имеет кучу значение (id), и обрабатывает из посредством DOM (создает ссылки ~ по моей проблеме их получается 586 ) по этой причине браузер дико виснет а некоторые и вообще выключаются (лиса)... подскажите пожалуйста как это исправить (СОЗДАТЬ БОЛЬШЕ СТРОК НЕ МОГУ - МОЖНО ИСХОДИТЬ ТОЛЬКО ИЗ ЭТОЙ) Заранее, спасибо! вот пример строки: <p id="link">%#K%jz0i8t69v29h##K%vr7eoawzff0d##K%yu13m6zlqwwn##K%wuu9jkc54chc##K%kokiwgo9ybff#%</p>(здесь 5 ссылок = K%jz0i8t69v29h .... ##-граница ссылки) |
str = "%#K%jz0i8t69v29h##K%vr7eoawzff0d##K%yu13m6zlqwwn##K%wuu9jkc54chc##K%kokiwgo9ybff#%";
LinkArr = str.replace(/^.*%#(?=K)|#%$/g,'').split(/##/ig);
alert(LinkArr.join(',\n'))
|
Вы не поняли - я достаю все ссылки просто создание ~600 объектов через ДОМ нагружает браузер как это исправить
|
Brook,
LinkArr = массив = делайте по одной |
я думаю что надо их создавать (ссылки через ДОМ) по частям = то есть сначала 50 потом еще 50 и так далее....
|
<body>
<script>var tstart = new Date();
var string = '';
for (var i = 0; i < 600; i++) {
string += '<a href="javascript.ru">JavaScript.Ru</a><br>';
}
document.body.innerHTML += string;
alert(new Date() - tstart + 'ms');
</script>
</body>
<body>
<script>var tstart = new Date();
var links, link;
links = document.createDocumentFragment();
for (var i = 0; i < 600; i++) {
link = document.createElement('a');
link.href = 'javascript.ru';
link.textContent = 'JavaScript.Ru';
links.appendChild(link);
links.appendChild(document.createElement('br'));
}
document.body.appendChild(links);
alert(new Date() - tstart + 'ms');
</script>
</body>
|
НЕ ВЫШЛО = лиса все равно висит
|
у меня так:
var reg = /#([\s*?\S*?]*?)#/gm; do {mtd = reg.exec(text);
if(mtd){$('#voiseV').html($('#voiseV').html()+'<span class="strl" type="R%" traffick="'+trf+rtrf+'" onclick="startplayer(\''+mtd[1]+'\')">Ссылка №</span>');$('#link').remove()}} while(mtd);
|
Цитата:
|
<!DOCTYPE html>
<body>
<script>
str = "%#K%jz0i8t69v29h##K%vr7eoawzff0d##K%yu13m6zlqwwn##K%wuu9jkc54chc##K%kokiwgo9ybff#%";
LinkArr = str.replace(/^.*%#(?=K)|#%$/g,'').split(/##/ig);
//alert(LinkArr.join(',\n'));
function run() {
var tstart = new Date();
var L = LinkArr.length;
var str = '';
for(var i =0; i<500; i++) {
str+='<a href="'+LinkArr[0]+'">Текст</a><br />\n'
}//alert(str)
var p=document.createElement('p');
p.innerHTML=str;
document.body.appendChild(p);
alert(new Date() - tstart);
}
</script>
<button onclick="run()">Запуск</button>
</body>
|
| Часовой пояс GMT +3, время: 00:42. |