|
sscroll вызывает метод setTimeout, передавая ему
через первый параметр переменную с командой, подлежащей выполнению, а через
второй - время задержки, по прошествии которого данную команду нужно будет
выполнить.
В качестве выполняемой команды мы указываем методу setTimeout вызов функции
sscroll. Таким образом в нашем сценарии эта функция вызывается периодически.
В функции sscroll мы определили три локальные переменные. Переменная cmd
хранит команду вызова функции sscroll. В переменной szOut мы подготавливаем
текст, отображаемый в строке состояния браузера при каждом вызове функции
sscroll.
Текстовая переменная szText используется как рабочая. В ней формируется
сообщение для вывода. Вначале в переменную szText записывается nSpace пробелов,
а затем добавляется строка szMsg:
for (i=0 ; i < nSpace ; i++)
{
szText += " ";
}
szText += szMsg;
Для того чтобы при каждом вызове функции sscroll наше сообщение отображалось
со сдвигом на одну позицию, мы извлекаем из переменной szText подстроку.
Извлечение подстроки выполняется с помощью метода substring, определенного во
встроенном классе текстовых строк String. Полученная подстрока записывается в
свойство status объекта window и таким образом отображается в строке состояния:
szOut = szText.substring(nIteration, nSpace + nIteration);
window.status = szOut;
Первый параметр метода substring определяет начальную позицию подстроки
внутри строки, а второй - конечную.
После отображения сообщения функция sscroll увеличивает значение глобального
счетчика nIteration на единицу:
nIteration++;
Когда в результате сдвига сообщение полностью уходит из строки состояния,
счетчик nIteration снова устанавливается в нулевое значение:
if(nIteration > nSpace + szMsg.length)
{
nIteration = 0;
}
Обратите внимание, что общая длина сдвигаемой строки здесь вычисляется как
сумма значения nSpace (количество начальных пробелов) и длины сообщения szMsg.
Последняя определяется с помощью метода length, определенного во встроенном
классе String.
Ограничение времени реакции пользователя
Иногда пользователь, попав на страницу Web, долго не может понять, что нужно
делать. Вы можете создать сценарий, который отображает в этой ситуации документ
HTML с подсказкой. Разумеется, подсказка должна отображаться только в том
случае, если пользователь не выполняет над вашей страницей никаких действий в
течении достаточно продолжительного времени.
Но как измерить время, в течении которого пользователь не активен?
В этом вам помогут методы setTimeout и clearTimeout. Первый из этих методов
мы уже использовали в предыдущем сценарии для организации периодического
выполнения функции.
Мы продемонстрируем применение этих методов для решения другой задачи,
связанной с ограничением времени ввода пароля.
Когда пользователь загружает документ HTML, исходный текст которого
представлен в листинге 2.6, на экране появляется форма с полем, предназначенным
для ввода текстовой строки пароля (рис. 2.12).
Рис. 2.12. Форма в доку
|
|