Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: FireFox тормаза JS скриптов  (Прочитано 594 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nightmaredess

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
FireFox тормаза JS скриптов
« : 01 Февраль 2011, 20:56:52 »
В FireFoxe ужасно тормозит скрипт. Как бороться с подобными тормозами?

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1686
  • ちのう の きょうかん
    • Просмотр профиля
Re: FireFox тормаза JS скриптов
« Ответ #1 : 01 Февраль 2011, 21:05:49 »
Скрипт в студию!
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн nightmaredess

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Re: FireFox тормаза JS скриптов
« Ответ #2 : 01 Февраль 2011, 21:17:00 »
<div value = "options" style = "display: none" id = "options" class = 'options'>

   <div value = "option" class = "option" id = "active"><a class = "select" href = "javascript: opt('active', 8)"><img class = "optionImg" src = "/img/button/btnPlay.png"/> Активировать </a></div>

   <div value = "option" class = "option" id = "pause"><a class = "select" href = "javascript: opt('pause', 1)"><img class = "optionImg" src = "/img/button/btnPause.png"/> Приостановить </a></div>

   <div value = "option" class = "option" id = "delete"><a class = "select" href = "javascript: opt('delete', '6')"><img class = "optionImg" src = "/img/button/delete.png"/> Удалить </a></div>

   <div value = "option" class = "option" id = "restore"><a class = "select" href = "javascript: opt('pause', '1')"><img class = "optionImg" src = "/img/button/restore.png"/> Востановить </a></div>

</div>

function getAbsolutePosition(el)
{
   var position = { x: el.offsetLeft, y: el.offsetTop };
   if (el.offsetParent) {
      var tmp = getAbsolutePosition(el.offsetParent);
      position.x += tmp.x;
      position.y += tmp.y;
   }
   return position;
}

function selectSlide(id, fieldType)
{
   
   $('#options').children().each(function(){
      $(this).css('display','none');
   });
   fields = menuTransitions[$('#selected'+ fieldType +id).attr('value')];
   for (var i = 0; i< fields.length;i++)
   {
      $('#' + fields).css('display','block')
   }
   var br = getAbsolutePosition(document.getElementById('selected' + fieldType +id));
   $('#options').attr('value',id);
   $('#options').css('top', br.y-68);
   $('#options').css('left', br.x-9);
   $('#options').slideToggle('fast');
   campaignId = id;
   type = fieldType
   
   $('#selected'+ type + campaignId + ', .options').hover(function(){
      left = false;
   },function(){
      left = true;
   });
}

Не чего феноменального. Просто отображается Див в определенном месте. Убирал вычисление координат тормоза те же.
« Последнее редактирование: 02 Февраль 2011, 11:03:14 от nightmaredess »

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
Re: FireFox тормаза JS скриптов
« Ответ #3 : 04 Февраль 2011, 08:21:22 »
Чтобы ничего не тормозило, надо оптимизировать. Например, Ваш кусочек

$('#options').attr('value',id);
   $('#options').css('top', br.y-68);
   $('#options').css('left', br.x-9);
   $('#options').slideToggle('fast');

Здесь 4 раза Вы ищете одно и то же. Можно так.

$('#options').attr('value',id)
   .css('top', br.y-68)
   .css('left', br.x-9)
   .slideToggle('fast');

Это я увидел, не вникая, что Вы там делаете.

 

Страница сгенерирована за 0.053 секунд. Запросов: 24.