2015-03-22 2 views
0

Я, похоже, проблема с браузером при использовании нокаута для рендеринга div с очень большой строкой.Нокаут JS div, связывающий довольно большой текст, заставляющий браузер висели

HTML:

<div data-bind="foreach: datas"> 
    <div data-bind="jsontext: Info"></div> 
</div> 

JS: Данные является массивом. В нем всего 1-2 элемента. Однако datas [0] .Info - это строка, которая очень велика, длина может составлять более 2 миллионов. При рендеринге части «Информация» браузер будет висели.

Есть ли у вас рекомендации по устранению этой проблемы? Кажется, DOM dov не может сделать очень большой текст. Было бы хорошо, если бы вы порекомендовали мне какой-нибудь JS-плагин, чтобы он мог получить эффект, который загружает только экран, если нам нужно больше, прокручивать вверх или вниз.

+1

Вы уверены, что это не ваша привязка? [Я тестировал] (http://jsfiddle.net/kevinvanlierde/0qgrd84m/) с 2миллионными символами и делает это довольно быстро. Вы только визуализируете текст или HTML? – Tyblitz

+0

браузер зависает, случается (в основном), если вы пытаетесь связать данные с помощью ajax-вызова с опцией 'async', установите' false', кроме этого, он должен работать нормально. –

+0

Можете ли вы разместить свою привязку 'jsontext'? – CaseyWebb

ответ

0

Ответ:

  1. jsontext будет повесила, когда текст очень велик. Хотя data-bind = "text: TextInfo" в порядке.
  2. Я использую некоторую фоновую логику, чтобы указать, если длина> 20000, тогда мы jasontext, иначе я просто покажу часть содержимого и предоставим пользователю функцию загрузки, чтобы увидеть полный контент.
Смежные вопросы