За последние 24 часа нас посетили 17978 программистов и 1576 роботов. Сейчас ищет 871 программист ...

Тормозит скрипт

Тема в разделе "PHP для новичков", создана пользователем PetrOFF, 21 фев 2011.

  1. PetrOFF

    PetrOFF Активный пользователь

    С нами с:
    13 май 2009
    Сообщения:
    102
    Симпатии:
    0
    Решил сделать фоновую загрузку обновлений на сайт.
    Все работает, но проблема в том когда начинает работать скрипт загружающий файлы с сервера, получаю паузы по 5 сек при переходе на другую страницу. Хотя видно что аякс запрос, останавливается

    js

    [js]function proxy(json){
    $.ajax({
    url: admin_dir_js+"proxy",
    type: "GET",
    data: {"json":json},
    success:function(data){

    }
    });
    }[/js]


    php
    PHP:
    1.  
    2. <?php
    3. function socet($serverUrl,$fileServer,$version,$siteUrl,$pathSave,$fileSave){
    4. $url_info = parse_url($serverUrl);
    5. $data = "&file=".$file."&version=".$version."&siteurl=".$siteUrl;
    6.  
    7. $fp = @fsockopen(@$url_info['host'], 80, $errno, $errstr, 6);
    8. if (!$fp) die($this->write_log($this->actionlog." ".$this->lang['l_connect_error'].@$url_info['host']."<br />","action.log"));
    9. $out  = "POST ".@$url_info['path']." HTTP/1.1\r\n";
    10. $out .= "Host: ".@$url_info['host']."\r\n";
    11. $out .= "Referer: /misc/proxy.php\r\n";
    12. $out .= "User-Agent: Opera\r\n";
    13. $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
    14. $out .= "Content-Length: ".strlen($data)."\r\n\n";
    15. $out .= "Connection: close\r\n\r\n";
    16. $out .= $data;
    17. fputs($fp, $out);
    18.  
    19. $in = '';
    20. while (($line = fgets($fp))!==false) $in .= $line;
    21. fclose($fp);
    22. $out = substr($in, strpos($in, "\r\n\r\n") + 4);
    23.  
    24. file_put_contents($pathSave.$fileSave,$out);
    25. }
    Методом исключения понял, что если закоментировать получения потока от сервера то тормоза пропадают

    PHP:
    1. while (($line = fgets($fp,1024))!==false) $in .= $line;
    2.  
    Куда копать?
     
  2. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    ужос...((
    вставьте маркеры кода php, подсветится синтаксис будет легче смотреть
     
  3. PetrOFF

    PetrOFF Активный пользователь

    С нами с:
    13 май 2009
    Сообщения:
    102
    Симпатии:
    0
    Так что, не кто не знает как снять тормоза при загрузке файла? Про бывал сокет в режиме не блока ставить, так во первых перестал вобше загружаться файл, и все равно навигационные ссылки перестают работать, крутится значок загрузки.
    Может кто то подскажите можно ли вобше сделать фоновую загрузку файлов с удаленного сервера?
     
  4. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    Тянуть файл с сервера в отдельном скрипте, а этот скрипт дергать аяксом.