Помощник
Здравствуйте, гость ( Вход | Регистрация )
Помогите составить алгоритм "переноса" длинных слов |
Alexander |
2010-10-26, 3:10
Сообщение
#1
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Встала проблема оптимизации системы. При разборе и фильтрации входящего от пользователя HTML около 80% затраченных ресурсов приходится на проставление переносов в длинные слова. Расстановка переносов нужна пержде всего для того, чтобы в случае бесконечнодлинной непрерывной последовательности символов, дизайна сайта не "поехал".
На сегодня алгоритм выглядит так:
Как видно, очень ресурсоемко. К сожалению я не смог придумать ничего лучше Прошу помочь. Однако, следует учитывать следующие особенности задачи: 1. Переносить слова нужно именно при помощи спецсимвола ­ - поскольку для пользователей с разными размерами мониторов, строки должны переносится по-разному. 2. Замена регуляркой типа [a-z0-9]{50} - невозможна. Поскольку последовательность 111111111<a href="3">1111111111</a>111111 также непрерывна. 3. Пункт 2 невозможен еще и по той причине, что если встречается спецсивол типа " , его нельзя разрывать т.е. нельзя вставить ­ вовнутрь ". 4. Внутри тега textarea такая замена длинных строк не нужна. |
|
|
||
Djadka |
2010-10-26, 20:50
Сообщение
#2
|
|
Любитель Группа: Eleanor user Сообщений: 463 Регистрация: 2010-10-17 Репутация: нет Всего: нет |
Александр, может такой вариант было проще реализовать на джаве?!
|
|
|
||
Alexander |
2010-10-26, 22:26
Сообщение
#3
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Ну предложите решение на java... Даже не знаю...
|
|
|
||
Alexander |
2010-10-26, 23:34
Сообщение
#4
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Появился интересный вариант с css - word-wrap:break-word http://htmlbook.ru/css/word-wrap
Кто сможет потестировать на кроссбраузерность? |
|
|
||
termit |
2010-10-27, 0:03
Сообщение
#5
|
|
Опытный Группа: Бета-тестеры Сообщений: 705 Регистрация: 2009-06-02 Из: Житомир Репутация: нет Всего: 11 |
По описанию, опера не поддерживает... обидно, если будет, время, лично проверю...
На опере 10 работает, если не указывать размер блока, то он по дефолту под розрешение монитора.. В качестве переноса используется символ ">" Сообщение отредактировал termit - 2010-10-27, 0:08 |
|
|
||
Гость_viachet_* |
2014-08-14, 18:18
Сообщение
#6
|
|
Гости |
Правильнее будет нагрузить этой задачей браузер пользователя, и текст в этом случае с сервера в первозданном виде приходить будет
Самый верный способ пока - это использовать для этих целей javascript. CSS правила работают не везде. Есть крохотный jquery плагин на 20 строчек , который добавляет в уже готовый текст на стороне клиента, в браузере "возможные переносы" в текст |
|
|
||
Текстовая версия | 0.0345 сек. 11 запросов GZIP включен Сейчас: 2025-01-17, 14:15 |