как отображать результаты скрипта немедленно, а не после завершения всей функции?
Подскажите пожалуйста как сделать динамический вывод содержания страницы. У меня есть страница, в ней div и этот div я меняю в скрипте, но результат изменения виден только после того как скрипт отработал. А мне нужно чтобы результат показывался в процессе работы скрипта.
Файл index.html: <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" src="js/sc-1.js"></script> <link rel="stylesheet" type="text/css" href="bot.css"> </head> <body> <button onclick="swdiv();">test for</button> <div id="scriptresult"> Ready to work! </div> </body> </html> Файл sc-1.js function wait(msecs) { var start = new Date().getTime(); var cur = start while(cur - start < msecs) { cur = new Date().getTime(); } } function swdiv() { $("div#scriptresult").html("loading ."); wait(1000); $("div#scriptresult").html("loading .."); wait(1000); $("div#scriptresult").html("loading ..."); } После нажатия на кнопку, показывается только третье сообщение, без первых двух. |
|
Потому что ваша функция wait - ̜̣̳̘̦̫̘ͤ͊̊͐͑̅е̠ͦ̓̍̆ͤ ̼͉̟͑͂̄̓̈р͕̣̿ͥͥ ̥̲̻͕͙̓̏́̚е̪ͮ̏̒͒̍ͨ ͖͔̹̲̮͎̖̐ͮͩ̐̍̍с̥̼̤̒ͬ̑ͬ͗̉ͫ ̞̺̗̲̹̯̪͎̥ͤ̉ͩ̔̚ь̘̞ͦ̅ ̝͈̹͕̝͉͙͚̐ͩ!̰͎̣̭̮̦̳̠̞ͯ̿̂͐̀
|
Цитата:
изменил код: function printdiv(pvalue) { $("div#scriptresult").html("loading " + pvalue); } function swdiv() { //timeout_id = window.setTimeout($("div#scriptresult").html("loading ."),1); // document.getElementById("scriptresult").innerHTML="start ....."; //wait(2000); window.setTimeout(printdiv("1"),10000); window.setTimeout(printdiv("2"),20000); window.setTimeout(printdiv("3"),30000); } теперь при нажатии на кнопку, сразу выводится сообщение "loading 3" |
Цитата:
|
sitar32, парень, ты не понимаешь js. Совсем.
Вот что по твоему делает этот код? window.setTimeout(printdiv("1"),30000); Так вот, на самом деле он сразу вызывает printdiv с аргументом "1" и передаёт в setTimeout результат вызова функции.(в данном случае undefined) Через 30 секунд вызовется ничто(undefined) и ничего не произойдёт само собой. |
Спасибо большое за помощь, разобрался.
Всем +1 к карме =) |
Часовой пояс GMT +3, время: 23:16. |