Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.02.2013, 22:46
Профессор
Отправить личное сообщение для Brook Посмотреть профиль Найти все сообщения от Brook
 
Регистрация: 13.04.2012
Сообщений: 210

как разбить строку на части?!
доброго вмени суток

Есть проблема у меня есть строка с данными которая обрабатывается jq
как сделать так чтобы скрипт брал дынные из по частям ....

ПРИЧИНА: строка имеет кучу значение (id), и обрабатывает из посредством DOM (создает ссылки ~ по моей проблеме их получается 586 ) по этой причине браузер дико виснет а некоторые и вообще выключаются (лиса)...

подскажите пожалуйста как это исправить (СОЗДАТЬ БОЛЬШЕ СТРОК НЕ МОГУ - МОЖНО ИСХОДИТЬ ТОЛЬКО ИЗ ЭТОЙ)

Заранее, спасибо!

вот пример строки:

<p id="link">%#K%jz0i8t69v29h##K%vr7eoawzff0d##K%yu13m6zlqwwn##K%wuu9jkc54chc##K%kokiwgo9ybff#%</p>
(здесь 5 ссылок = K%jz0i8t69v29h .... ##-граница ссылки)

Последний раз редактировалось Brook, 16.02.2013 в 22:54.
Ответить с цитированием
  #2 (permalink)  
Старый 16.02.2013, 23:09
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

str = "%#K%jz0i8t69v29h##K%vr7eoawzff0d##K%yu13m6zlqwwn##K%wuu9jkc54chc##K%kokiwgo9ybff#%";
LinkArr = str.replace(/^.*%#(?=K)|#%$/g,'').split(/##/ig);
alert(LinkArr.join(',\n'))
Ответить с цитированием
  #3 (permalink)  
Старый 16.02.2013, 23:11
Профессор
Отправить личное сообщение для Brook Посмотреть профиль Найти все сообщения от Brook
 
Регистрация: 13.04.2012
Сообщений: 210

Вы не поняли - я достаю все ссылки просто создание ~600 объектов через ДОМ нагружает браузер как это исправить
Ответить с цитированием
  #4 (permalink)  
Старый 16.02.2013, 23:12
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Brook,
LinkArr = массив = делайте по одной
Ответить с цитированием
  #5 (permalink)  
Старый 16.02.2013, 23:12
Профессор
Отправить личное сообщение для Brook Посмотреть профиль Найти все сообщения от Brook
 
Регистрация: 13.04.2012
Сообщений: 210

я думаю что надо их создавать (ссылки через ДОМ) по частям = то есть сначала 50 потом еще 50 и так далее....
Ответить с цитированием
  #6 (permalink)  
Старый 16.02.2013, 23:20
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<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>

Последний раз редактировалось danik.js, 16.02.2013 в 23:24.
Ответить с цитированием
  #7 (permalink)  
Старый 16.02.2013, 23:24
Профессор
Отправить личное сообщение для Brook Посмотреть профиль Найти все сообщения от Brook
 
Регистрация: 13.04.2012
Сообщений: 210

НЕ ВЫШЛО = лиса все равно висит
Ответить с цитированием
  #8 (permalink)  
Старый 16.02.2013, 23:25
Профессор
Отправить личное сообщение для Brook Посмотреть профиль Найти все сообщения от Brook
 
Регистрация: 13.04.2012
Сообщений: 210

у меня так:
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);
Ответить с цитированием
  #9 (permalink)  
Старый 16.02.2013, 23:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Brook
НЕ ВЫШЛО = лиса все равно висит
Да? А у меня 3ms. Это на 2.5ГГц. Стало быть ты запускаешь скрипт на компьютере с процессором в 250МГц максимум? На сеге что-ли?
Ответить с цитированием
  #10 (permalink)  
Старый 16.02.2013, 23:29
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<!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>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрипт бегущей строки - как сделать строку непрерывной dansury Элементы интерфейса 9 26.01.2013 04:54
как получить первую видимую строку в переменную ? mitiya Общие вопросы Javascript 23 30.06.2012 23:29
исползоват строку как имя масива dadli Общие вопросы Javascript 5 18.05.2012 14:35
Как частично удалить текстовую строку из набора? Nubi jQuery 2 27.12.2008 22:11
Как сделать бегущую строку? Forgott Общие вопросы Javascript 12 12.05.2008 09:19