2012-07-03 3 views
0

Я создаю панель пользовательского интерфейса с кнопками и текстовыми полями для использования на сайте Google. Кажется, что перезапуск скрипта (повторная загрузка Globals, Logs clear) - насколько я могу понять, нажав кнопку. В обработчике кнопок ничего нет, что вызывает ошибку. Обработчик кнопки работает нормально (doGet НЕ запускается снова).
Чтобы настроить обработчик кнопки, выполните следующие действия. Может быть, что-то здесь вызывает это?Перезапуск скриптов Google Apps во время выполнения в Google SIte

//container is the app 

//textOnButton = "Next" 

//handler ="submitNext_" - name of method that handles click 

//vPanel is the panel containing the button 

var submitButton = container.createButton().setId(textOnButton); 

submitButton.setText(textOnButton); 

// submit handlers 

var submitServerHandler = container.createServerClickHandler(handler); 

submitServerHandler.addCallbackElement(vPanel); 

submitButton.addClickHandler(submitServerHandler); 

Есть идеи по этому вопросу? Основная проблема заключается в том, что пара моих глобальных констант не является постоянными, и они снова устанавливаются при повторном запуске. Я могу хранить их в UserProperties как обход, но хотел понять, почему это происходит.

ответ

1

Это намеренное поведение. Каждый обратный вызов запускает «свежий» сценарий, и поэтому нецелесообразно иметь константы, которые на самом деле не являются константами. Смотрите документацию класса здесь:

https://developers.google.com/apps-script/class_serverhandler

Serge, эти методы устаревшее просто потому, что мы заменили их все createServerHandler, который работает для любого типа обработчика. Все старые методы wordy createServerXXXHandler все еще работают; они просто синонимы для createServerHandler.

+0

спасибо за чистую информацию ;-) –

+0

Спасибо за ответ. После прочтения документации я вижу, что рекомендация - это работа, о которой я уже придумал, - сохранение данных состояния в свойствах пользователя. –

0

Это может быть связано с another post seen here today как обработчик, который вы используете createServerClickHandler(handler), является deprecated from june 2012

Не уверен, но стоит попробовать?

+0

Спасибо за ответ. Хорошая догадка, но я сделал изменения, как было предложено, и поведение по-прежнему существует. –

Смежные вопросы