Javascript.RU

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

Заменить определенные конструкции на странице. Нужен оптимизированный вариант.
Здравствуйте!

В тексте страницы имеются определнные сокращенные ссылки на книги Библии, например:

Прочтите данный текст Быт. 3:12, а теперь здесь: Исход 2:11 и т.д.

Скрипт должен заменить все эти сокращенные названия на определенную ссылку.

В переменной books хранятся все возможные сокращения книги и ее Id, например:

books[0]=[ ['Быт.','Быт','Бт'] , [1] ];
books[1]=[ ['Исх.','Исх','Исход'], [2] ];

.
.
.
и т.д всего - 66 элементов


После замены должно получиться: Прочтите данный текст <a href="#1-3-12">Быт. 3:12</a>, а теперь здесь: <a href="#2-2-11">Исход 2:11 и т.д.

т.е. ссылки содержащие якорь вида #номер_книги_из_массива-глава-стих

Интересует оптимальный метод замены, т.к. прогонять по циклу
document.body.innerHTML.replace(/xxxxxxxx/g, 'xxxxxxxx2');
мне кажется - очень медленный способ.
Ответить с цитированием
  #2 (permalink)  
Старый 30.08.2011, 22:28
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,589

ну ясно ,чего ему не тормозить ?
получать всякий раз содержимое страницы...
загнать содержимое в переменную и изменять её а не document.body всякий раз - получить содержимое,изменить содержимое,предать содержимое.
да и смысл ещё по тегам прицепом проходить? брать содержимое тегов и менять именно содержимое и атрибуты если необходимо -наверно будет побыстрее,тем более если известно в каком типе тегов нужно произвести замену

Последний раз редактировалось dmitriymar, 30.08.2011 в 22:54.
Ответить с цитированием
  #3 (permalink)  
Старый 30.08.2011, 23:12
Новичок на форуме
Отправить личное сообщение для webpuper Посмотреть профиль Найти все сообщения от webpuper
 
Регистрация: 09.06.2011
Сообщений: 7

если нет других вариантов оптимизации, то помогите регулярку написать для replace(/xxxxxxxx/g, 'xxxxxxxx2') для данной задачи
Ответить с цитированием
  #4 (permalink)  
Старый 31.08.2011, 01:01
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

А почему изначально нельзя сгенерить в таком виде?
Ответить с цитированием
  #5 (permalink)  
Старый 31.08.2011, 11:23
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,589

Сообщение от webpuper
если нет других вариантов оптимизации, то помогите регулярку написать для replace(/xxxxxxxx/g, 'xxxxxxxx2') для данной задачи
чегото по тону такое ощущение ,что обязаны...
Ответить с цитированием
  #6 (permalink)  
Старый 02.09.2011, 14:16
Новичок на форуме
Отправить личное сообщение для webpuper Посмотреть профиль Найти все сообщения от webpuper
 
Регистрация: 09.06.2011
Сообщений: 7

Сообщение от Триви Посмотреть сообщение
А почему изначально нельзя сгенерить в таком виде?
этот код будет размещаться на внешних сайтах, которые пожелают его разместить
Ответить с цитированием
  #7 (permalink)  
Старый 02.09.2011, 14:17
Новичок на форуме
Отправить личное сообщение для webpuper Посмотреть профиль Найти все сообщения от webpuper
 
Регистрация: 09.06.2011
Сообщений: 7

Сообщение от dmitriymar Посмотреть сообщение
чегото по тону такое ощущение ,что обязаны...
нормальный ты, нет? я хочу конструктивной помощи, а не твое гавно мне
Ответить с цитированием
  #8 (permalink)  
Старый 02.09.2011, 15:44
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

если хочешь что бы за тебя написали код тебе в раздел работа)
Ответить с цитированием
  #9 (permalink)  
Старый 03.09.2011, 23:12
Новичок на форуме
Отправить личное сообщение для webpuper Посмотреть профиль Найти все сообщения от webpuper
 
Регистрация: 09.06.2011
Сообщений: 7

Сообщение от розовый слоник Посмотреть сообщение
если хочешь что бы за тебя написали код тебе в раздел работа)
я не прошу писать "за меня", но если бы у вас был конструктивный совет, то этого было достаточно. а так ниочемники какие-то
Ответить с цитированием
Ответ



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

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