Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.01.2012, 17:21
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

Отптимизация скрипта
Вобщем, скрипт громоздкий у меня, функциональный,
но чтобы оптимизировать самому пока недостаточно опыта.

оптимизируйте мне пожалуйста вот эту громадину

setTimeout(function(){
$('audio_call').innerHTML= 'Позвонить (4)';
$('video_call').innerHTML = 'Видеозвонок (4)';
}, "1000");
setTimeout(function(){
$('audio_call').innerHTML= 'Позвонить (3)';
$('video_call').innerHTML = 'Видеозвонок (3)';
}, "2000");
setTimeout(function(){
$('audio_call').innerHTML= 'Позвонить (2)';
$('video_call').innerHTML = 'Видеозвонок (2)';
}, "3000");
setTimeout(function(){
$('audio_call').innerHTML= 'Позвонить (1)';
$('video_call').innerHTML = 'Видеозвонок (1)';
}, "4000");



как-нибудь в одно выражение с повторением цикла
Ответить с цитированием
  #2 (permalink)  
Старый 19.01.2012, 17:21
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

будет наглядным примером как оптимизировать подобные куски кода
Ответить с цитированием
  #3 (permalink)  
Старый 19.01.2012, 18:27
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

var i=4;
var  audio= $("audio_call");
var video= $('video_call')

setTimeout(*!*function a()*/!*{
 audio.innerHTML= 'Проблемы с кодировкой (' + i+ ")";
 video.innerHTML = 'Проблемы с кодировкой (' +i + ')';
 if (--i) // то есть если он не превратился в ноль после этой операции
  setTimeout(a, 1000);
}, 1000)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #4 (permalink)  
Старый 19.01.2012, 19:46
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

четко, спасибо
Ответить с цитированием
  #5 (permalink)  
Старый 19.01.2012, 19:54
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от trikadin
setTimeout(function a(){
тока вот эта конструкция боюсь в старых браузерах работать не будет.
Ответить с цитированием
  #6 (permalink)  
Старый 19.01.2012, 19:56
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

для старых браузеров нужно делать так:
var i=4;
var  audio= $("audio_call");
var video= $('video_call')
 
setTimeout(function(){
 audio.innerHTML= 'Проблемы с кодировкой (' + i+ ")";
 video.innerHTML = 'Проблемы с кодировкой (' +i + ')';
 if (--i) // то есть если он не превратился в ноль после этой операции
  setTimeout(arguments.callee, 1000);
}, 1000)
Ответить с цитированием
  #7 (permalink)  
Старый 19.01.2012, 20:24
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

в старой мозиле неработало, и заработало.
функция в функции там неподдерживается вроде
Ответить с цитированием
  #8 (permalink)  
Старый 19.01.2012, 23:17
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от devote
тока вот эта конструкция боюсь в старых браузерах работать не будет.
Нахрен их) А вообще - использовать arguments.callee - моветон. Просто объявите ф-цию заранее (всё равно вы ещё и другие переменные объявляете).
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #9 (permalink)  
Старый 19.01.2012, 23:19
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от trikadin
А вообще - использовать arguments.callee - моветон.
ну это для strict моветон, а для обычного режима нормально.
Ответить с цитированием
  #10 (permalink)  
Старый 19.01.2012, 23:24
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от devote
ну это для strict моветон, а для обычного режима нормально.
Дык их же убрать всё собираются. Так напорешься на то, что оно в новых браузерах не работает...
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работают два jquery скрипта вместе SunYang Общие вопросы Javascript 1 03.09.2011 21:13
Найти элемент ниже скрипта Vladislav_V Javascript под браузер 8 12.01.2011 08:47
Google Chrome перерисовка страницы во время выполнения скрипта Dekart Javascript под браузер 0 08.06.2010 08:35
Круговорт скрипта.... Karl Общие вопросы Javascript 1 17.10.2009 15:37
Блок переключения меню на JS, два скрипта в одном файле Dizeloid Элементы интерфейса 0 30.07.2009 12:03