[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Полоса загрузки php скрипта
Skesh
Доброго всем времени суток, нужна полоса загрузки РНР скрипта, подскажите пожалуйсто, у меня есть скрипт на РНР, он достаточно тяжолый, и при максимальных нагрузках исполняется до 45 секунд, я нашел скрипт загрузки на javascript, но он показывает загрузку самой страници, тоесть: 45 секунд идут вычисления, когда они готовы включается javascript полосы загрузки и показывает само состояние загрузки страници а не РНР скрипта. Подскажите пожалуйсто есть ли готовые решиние, если да то какие? и возможно ли в природе то о чем я спрашиваю? Я впринципе думал как написать его своими руками, но не знаю как убрать его когда страница загрузица, и плюс страница начинает отображатся только тогда когда прошли все вычесления.



Спустя 36 минут, 8 секунд (11.12.2011 - 15:38) Winston написал(а):
ТЫЦ ?

Спустя 21 минута, 27 секунд (11.12.2011 - 16:00) Skesh написал(а):
Супер, спасибо большое, эта подшла:
<html>
<
head>
<
style type="text/css"><!--

div {
margin: 1px;
height: 20px;
padding: 1px;
border: 1px solid #000;
width: 275px;
background: #fff;
color: #000;
float: left;
clear: right;
top: 38px;
z-index: 9
}

.percents {
background: #FFF;
border: 1px solid #CCC;
margin: 1px;
height: 20px;
position:absolute;
width:275px;
z-index:10;
left: 10px;
top: 38px;
text-align: center;
}

.blocks {
background: #EEE;
border: 1px solid #CCC;
margin: 1px;
height: 20px;
width: 10px;
position: absolute;
z-index:11;
left: 12px;
top: 38px;
filter: alpha(opacity=50);
-
moz-opacity: 0.5;
opacity: 0.5;
-
khtml-opacity: .5
}

-->
</
style>
</
head>
<
body>

<?php

if (ob_get_level() == 0) {
ob_start();
}
echo str_pad('Loading... ',4096)."<br />\n";
for ($i = 0; $i < 25; $i++) {
$d = $d + 11;
$m=$d+10;
//This div will show loading percents
echo '<div class="percents">' . $i*4 . '% complete</div>';
//This div will show progress bar
echo '<div class="blocks" style="left: '.$d.'px"> </div>';
flush();
ob_flush();
sleep(1);
}
ob_end_flush();
?>
<div class="percents" style="z-index:12">Done.</div>
</
body>
</
html>

а не подскажите как ее убрать после загрузки, и чтобы она не все дивы изменяла а только свой??

Спустя 48 минут, 47 секунд (11.12.2011 - 16:48) Skesh написал(а):
хм на локальном сервере работает, а в нете нет =(

Спустя 4 минуты, 43 секунды (11.12.2011 - 16:53) sharki написал(а):
Skesh
Не все хостеры это поддерживают, некоторые блокируют

Спустя 4 минуты, 59 секунд (11.12.2011 - 16:58) Skesh написал(а):
млин, как победить? есть альтернатива?

Спустя 34 минуты, 7 секунд (11.12.2011 - 17:32) Nikitian написал(а):
Отключить буферизацию вывода. Это не блокировка, просто настройка такая.

Спустя 8 минут, 33 секунды (11.12.2011 - 17:41) Skesh написал(а):
єто в .htaccess или в настройке самого хостинга?

Спустя 11 минут, 24 секунды (11.12.2011 - 17:52) Skesh написал(а):
нашел php_flag output_buffering off в .htaccess но чет не помогло, еще идеи есть?

Спустя 12 минут, 1 секунда (11.12.2011 - 18:04) Nikitian написал(а):
Как вариант в дополнение к вашему:

<?php
@ini_set('output_buffering',0);
@ob_implicit_flush(1);

Спустя 6 минут, 48 секунд (11.12.2011 - 18:11) Skesh написал(а):
ммм нет, всеравно ничего, наверное хостинг не даст этого сделать.

Спустя 44 секунды (11.12.2011 - 18:12) Skesh написал(а):
Да что ж такое, неужели никто не стыкался с подобной проблемой?

Спустя 1 час, 6 минут, 2 секунды (11.12.2011 - 19:18) Nikitian написал(а):
Попробуйте договориться с хостингом. Возможно изменение этого параметра недоступно через htaccess. Либо, что лучше, перепишите скрипт, чтобы он не выполнялся так долго. Возможно разбейте его на более элементарные операции, которые будут последовательно через js вызываться

Спустя 33 минуты, 45 секунд (11.12.2011 - 19:51) Skesh написал(а):
Спасибо за совет.


_____________
*пускает слюну, глядя на код* :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.