сильно тормозит innerText

[SDem]

Новичок
сильно тормозит innerText

Привет всем. Столкнулся с проблемкой.
Вобщем в <div> лежит огромный кусок текста ( а точнее кода длинной в 25000 - символов). Мне надо вытащить из div-a голый текст без хтмл. Соответственно делаю innerText и 3 сеунды наслаждаюсь торомзами, прежде чем получить результат. Я думал это элементраная операция. Есть ли какие то аналоги ей? Подскажите как мне решить проблему. Дальше то я работаю с документом через ДОМ и там всё летает. А эта строка получается самой тормозной.
 

denver

?>Скриптер
innerText по-мойм и есь самое быстрое решение..
Попробуй что-ли еще что-нибудь вроде:
.innerHTML.replace(/<.*?>/g, "")
 

[SDem]

Новичок
denver
Не.. не помогает.. Странно то, что innerHTML выполняется моментально а innerText ужасно тормозит на том же куске кода... Наверное я чё-то не понимаю... Хотя ты наверное прав.. Копать надо в эту сторону но другими методами. У меян в диве код лежит (html,php,js..) видимо потому и тормозит. Если вставить туда простой текст то при 40000 уже начинает подтормаживать innerHTML, а innerText срабатывает моментально.

кстати innerHTML.replace мне не поможет.. ибо мне надо кроме всего прочего ещё и длину строки знать, атак он абудет некорректно определяться.

-~{}~ 23.09.06 21:24:

вобщем теперь вы выттаскиваю всё через range.text Всё стало рабоотать быстро. Но вот только теперь операция text.length стала тормозить. Это ятуплю где то иди эксплорер?
 

SelenIT

IT-лунатик :)
Можно попробовать рекурсивно пройтись по childNodes этого дива, собирая nodeValue (те, что не null). Если основная работа идет через DOM, это может оказаться даже удобнее (не говоря о том, что innerText - IE-only).

P.S.
>У меян в диве код лежит (html,php,js..)
это как (выделенное)?
 

denver

?>Скриптер
Странно то, что innerHTML выполняется моментально а innerText ужасно тормозит на том же куске кода
при 40000 уже начинает подтормаживать innerHTML, а innerText срабатывает моментально.
Ты эта, определись с выводами и юзай тот что всё же быстрее.

кстати innerHTML.replace мне не поможет.. ибо мне надо кроме всего прочего ещё и длину строки знать, атак он абудет некорректно определяться.
Что там будет некоректно??? Поконкретнее пиши.

Но вот только теперь операция text.length стала тормозить
А это точно операция или быть может свойство? :)
 

[SDem]

Новичок
Вобщем после многочисленных тестов стало ясно из-за чего тормоза (хотя механизм я всё равно не понял). Вобщем если в div-е присутствует например строка
<script> бла бла бла </script>
то всё срабатывает, но если там стоит неправильная строка, например такая:
<script> бла бла бла </script
то всё тормозит. При этом, если я поставлю в коде своего скрипта лишние кавычки.. ну например так a=''; или просто влеплю парочку ;; то все экранируется.. и работает быстро..
Я только механизм не могу понять. каким образом ошибки в диве просачиваются в скрипт? и как сэтим бороться ?

-~{}~ 24.09.06 00:47:

Автор оригинала: SelenIT
Можно попробовать рекурсивно пройтись по childNodes этого дива, собирая nodeValue (те, что не null). Если основная работа идет через DOM, это может оказаться даже удобнее (не говоря о том, что innerText - IE-only).
Мне не нужна кроссбраузерность. Решается частная задача. Думаю работа через DOM не окажется быстрее. Ведь в итоге мы всё-равно буде натыкаться на неправильные строки яваскрипта и тормозиться на них.

P.S.
>У меян в диве код лежит (html,php,js..)
это как (выделенное)?
- не понял вопрос, если честно )
 

SelenIT

IT-лунатик :)
Это было к тому, что в готовой HTML-странице не может быть PHP-кода, разве что его отображение типа <code>&amp;lt;? echo &amp;quot;It&amp;#8217;s PHP!&amp;quot;; ?&amp;gt;</code>.
 

[SDem]

Новичок
Автор оригинала: SelenIT
Это было к тому, что в готовой HTML-странице не может быть PHP-кода, разве что его отображение типа <code>&amp;lt;? echo &amp;quot;It&amp;#8217;s PHP!&amp;quot;; ?&amp;gt;</code>.
ну естественно. Так и есть. Всё заменено.
 
Сверху