ProgressBarДиджит ProgressBar, индикатор хода выполнения какойто операции, напоминает другие аналогичные индикаторы, которые можно встретить в приложениях, и предусматривает возможность работы в детерминированном и в недетерминированном режиме. Самое замечательное в этом диджите то, что о нем можно много не говорить. Фактически пример 15.3 прекрасно говорит сам за себя.Пример 15.3. Типичный пример использования недетерминированного индикатора ProgressBar style="width:300px"> Конечно, иногда вместо использования недетерминированного индикатора будет возникать необходимость получать данные от сервера и отображать фактический ход выполнения операции. Предположим, что у нас имеется серверная процедура, которая возвращает некоторое значение, свидетельствующее о ходе выполнения операции. Следующий фрагмент представляет собой модель такой процедуры: import cherrypy config = { #передать этот статический файл... '/foo.html' : { 'tools.staticfile.on' : True, 'tools.staticfile.filename' : '/absolute/path/to/foo.html' } } class Content: def __init__(self): self.progress = 0 @cherrypy.expose def getProgress(self): self.progress += 10 return str(self.progress) cherrypy.quickstart(Content(), '/', config=config) Файл foo.html, содержащий диджит ProgressBar, может выглядеть, как показано ниже: href="http://o.aolcdn.com/dojo/1.1/dojo/resources/dojo.css" /> href="http://o.aolcdn.com/dojo/1.1/dijit/themes/tundra/tundra.css" /> type="text/javascript" src="http://o.aolcdn.com/dojo/1.1/dojo/dojo.xd.js" djConfig="parseOnLoad:true"> (body style="padding:100px" class="tundra") Loading... (/body) Функция addOnLoad в этом примере каждую секунду обращается к URL /getProgress, чтобы получить некоторое значение и с помощью функции update диджита ProgressBar использовать его для индикации хода выполнения операции. Наконец напомню, что если потребуется отображать диджит ProgressBar при одновременном блокировании доступа к странице, чтобы заставить пользователя дождаться завершения операции, вы всегда можете поместить его внутрь диджита Dialog. Сделать это можно примерно так, как показано ниже: var pb = new dijit.ProgressBar; var d = new dijit.Dialog; d.setContent(pb.domNode); d.show();. Статьи из раздела Dojo на эту тему: ![]() ![]() ![]() ![]() ![]() Вернуться в раздел: Dojo / Виджеты приложения
|