locked
Ожидание ответа сервера RRS feed

  • Вопрос

  • Доброго времени суток!

    Я новичок в js, поэтому вопрос, скорее всего, элементарный... Но в сети ответа найти не получилось, посему решил побеспокоить сообщество.

    Делаю приложение под win8. Шаблон - приложение с навигацией. Язык - js. В homepage.js имеется код 

    (function () { "use strict"; function init() { var options = { url: "http://сайт.ru", responseType: "document" }; WinJS.xhr(options).done ( function (xhr) { var li; var i; var blocklist = document.getElementById("blocklist"); var links = xhr.response.querySelectorAll("a"); for (i = 0; i < links.length; i++) { li = document.createElement("li"); li.innerHTML = links[i].href; blocklist.appendChild(li); } //blocklist.innerText = "yyyyyy"; }, function () { var msg = new Windows.UI.Popups.MessageDialog("Не удается загрузить... Уж не случилочь ли чего с подключением к интернету?!"); msg.showAsync() } ); }; document.addEventListener("DOMContentLoaded", init()); })();

    Как сделать, чтоб во время выполнения запроса пользователю показывались вертящиеся точки (или линеечки бегущих точек)? Это ведь, я так понимаю, системная "заставка"... Как ее прицепить?

    26 мая 2014 г. 17:27

Ответы

  • Есть, конечно, и более изящные решения, но я новичок..

    В общем, сделал так

    (function () {
        "use strict";
        WinJS.UI.Pages.define("/pages/home/home.html", {
            ready: function (element, options) {
                var progress = document.createElement("progress");
                progress.id = "progress";
                document.querySelector("body").appendChild(progress);
                var options = { url: "http://site.ru/page.php", responseType: "text" };
                WinJS.xhr(options).then (
                    function (response) {
    					//-----тут происходит нечто с полученным ответом сервера--------                   
                        progress.parentNode.removeChild(progress);
                    },
                    function (error) {
                        var msg = new Windows.UI.Popups.MessageDialog("Ах беда! Сервер временно недоступен...");
                        progress.parentNode.removeChild(progress);
                        msg.showAsync();
                    }
                );
            }
        });
    })();

    Надо вставить в нужное место тег <progress></progress> и "шарики" полетят. И будут летать, пока этот тег не убить. Ну, или не не сделать невидимым в css.

    Летание "шариков" по кругу или по прямой, их цвет и фон, а также положение прогресса задается в соответствующем css по айдишнику. Можно и не шарики сделать, а реальный прогресс-бар (если, например, известно количество итераций). Тег тот же, рулить опять же в стилях.

    30 мая 2014 г. 6:17

Все ответы

  • Здравствуйте,

    С этой: http://msdn.microsoft.com/en-us/library/windows/apps/hh465165.aspx , статьей ознокамливались?


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    27 мая 2014 г. 6:23
  • Не нашел того, что хотел, но куда копать боле-менее понял. Спасибо.
    27 мая 2014 г. 8:32
  • Ясно, надеюсь результат будет. Если удасться найти что-то более конкретное, то по возможности отпишите здесь, будет в помощь пользователям с похожим вопросом.


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    27 мая 2014 г. 14:11
  • Есть, конечно, и более изящные решения, но я новичок..

    В общем, сделал так

    (function () {
        "use strict";
        WinJS.UI.Pages.define("/pages/home/home.html", {
            ready: function (element, options) {
                var progress = document.createElement("progress");
                progress.id = "progress";
                document.querySelector("body").appendChild(progress);
                var options = { url: "http://site.ru/page.php", responseType: "text" };
                WinJS.xhr(options).then (
                    function (response) {
    					//-----тут происходит нечто с полученным ответом сервера--------                   
                        progress.parentNode.removeChild(progress);
                    },
                    function (error) {
                        var msg = new Windows.UI.Popups.MessageDialog("Ах беда! Сервер временно недоступен...");
                        progress.parentNode.removeChild(progress);
                        msg.showAsync();
                    }
                );
            }
        });
    })();

    Надо вставить в нужное место тег <progress></progress> и "шарики" полетят. И будут летать, пока этот тег не убить. Ну, или не не сделать невидимым в css.

    Летание "шариков" по кругу или по прямой, их цвет и фон, а также положение прогресса задается в соответствующем css по айдишнику. Можно и не шарики сделать, а реальный прогресс-бар (если, например, известно количество итераций). Тег тот же, рулить опять же в стилях.

    30 мая 2014 г. 6:17