Титла: PHP Progress display Публикувано от: sunhater в Mar 28, 2004, 17:37 Как мога да покажа съобщение да се изчака докато скриптът си изчислява нещо си?
Титла: PHP Progress display Публикувано от: kennedy в Mar 28, 2004, 19:40 аз имах следния проблем: паяк събира информация от 1000 страници, при първия опит му дадох да ми изпълни скрипта, на един пас , но времето се оказва много, а и няма как да го спреш (натискането на стопа на браузера нищо не спира) и се получаваха едни омазвания ........ втората версия беше с рефреш, вмъкнах в бодито да се рефрешва на всяка секунда след като се зареди страницата, а скрипта си бачкаше стъпка по стъпка и извеждаше колко страници е обходил и информация за страницата.
съжелявам че не отговарям точно на въпроса ти , но това е което знам ................. Титла: PHP Progress display Публикувано от: BULFON в Mar 28, 2004, 21:45 За още по сложен вариант:
можеш извикването на скрипрта да го правиш с POST или GET заявка но target-a да е скрит фрейм /FRAME или IFRAME/. В скрития фрейм се презарежда /виж идеята на Кенеди/ страница в която в JavaScript обект/стринг записваш прогреса или че има все още работа. И извикваш функция от другия/parent/ фрейм чрез която показваш прогреса. Пример за страницата която се презарежда /приемам че страницата се презарежда в скрит IFRAME/: <html> <head> <META HTTP-EQUIV=Refresh CONTENT="10; URL=http://site.com/updateprogress.php"> <script> var nProgress = 50 parent.updateStatus( nProgress ) </script> </head> <body> </body> <html> в parent фрейма пишеш функцията function updateStatus( nProgress ) { //разбира се това не е най-добрият начин да покажеш прогреса alert( nProgress ) } Титла: PHP Progress display Публикувано от: peio в Mar 28, 2004, 23:16 къде го пратихте човека ...
има си функция flush(), която върши тази работа пример:
и разбира се при такива неща трябва да се увеличи максималното време за изпълнение на скрипта и за да ти спестя загубено време: под windows flush-a работи само в тоалетната Титла: PHP Progress display Публикувано от: BULFON в Mar 29, 2004, 01:04 А има и друг начин. Ако скрипта ти ще изчислява много, ама наистина много дълго нещо е хубаво да праща писмо на потребителя, когато започва изчисленията, а в края да му прати писмо да се върне на страницата да си види изчислените резултати. Това също е решение. Понякога.
Титла: PHP Progress display Публикувано от: sunhater в Mar 30, 2004, 17:35 И с flush() и без него - все тая - страницата се показва едва след като се изпълни целия скрипт. На мен ми трябва за фото галерия, която създава thumbinals на снимките, които нямат такива, но понеже това е много бавна работа за PHP (ако се иска качество) ще трябва да съобщя някак си да се почака.
PHP-то работи под Linux. Колкото до JavaScrip-тът - не мога да схвана напълно идеята, но в краен случай ще се заема с този вариант. Титла: PHP Progress display Публикувано от: в Mar 30, 2004, 18:01 mislia, che shte stane s javascript i <div...>, no triabva da pomislish tochno kak da go realizirash
Титла: PHP Progress display Публикувано от: в Apr 28, 2004, 16:59 Можеш например да отвориш нов прозорец \window.open()\, като вътре се зарежда същия документ с определен GET параметър \например `myscript.php?action=process`\.
След javascript текста, който отваря прозореца трябва да поставиш и друг, който да го затвори след обработката \ window.open('myscript.php?action=process', 'newWindow', '') newWindow.close(); \ Слагаш една проверка в началото на самия документ: if ($_GET[action]=='process'){ ... } Вътре в тялото на if-а извеждаш текста, който искаш да види потребителя \echo 'Processing info, please wait!';\ След това извикваш обработващата функция. Kато вариант можеш да отвориш модален прозорец, но не зная дали друго освен IE поддържа модални прозорци. Титла: PHP Progress display Публикувано от: sunhater в Apr 29, 2004, 01:59
Това няма ли да отвори нов прозорец и после веднага да го затвори? |