<script type="text/javascript" class="init">
var maxvalue;
var progress;
$(document).ready(function() {
// получаем инфо от скрипта о состоянии граббера
function getInfo() {
var data = {
"controller": "index",
"show_info": "1"
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
type: "POST",
dataType: "json",
url: "index.php",
type: "GET",
data: data,
success: function(data) {
$("#statustxt").html(data["status"]);
$("#current").html(data["processed"]);
$("#total").html(data["total"]);
setProgress(data["progress"]);
}
});
}
setInterval(function() { getInfo() }, 2500); // проверяем прогресс каждые 2.5 секунды
$( "#start" ).click(function() {
var data = {
"controller": "index",
"enable_script": "start"
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
type: "POST",
dataType: "json",
url: "index.php",
type: "GET",
data: data,
success: function(data) {
$("#statustxt").html(data["status"]);
}
});
});
});
function setProgress(progress)
{
var progressBarWidth=progress*$(".container").width()/ 100;
$(".progressbar").width(progressBarWidth).html(progress + "%");
}
</script>
<style>
.container {
width: 400px;
height: 25px;
border: 1px solid #ddd;
border-radius: 5px;
overflow: hidden;
display: inline-block;
margin: 0px 10px 5px 5px;
vertical-align: top;
}
.progressbar {
color: #fff;
text-align: right;
height: 25px;
line-height: 24px;
width: 0;
background-color: #0ba1b5;
border-radius: 3px;
}
</style>
<div class="container">
<div class="progressbar"></div>
</div>
if (isset($_POST["show_info"])) {
$totalPosts = (int) $this->getTotalPosts();
$processedPosts = (int) $this->getProcessedPosts();
$info["progress"] = round( ($processedPosts * 100) / $totalPosts, 2);
$info["total"] = $totalPosts;
$info["status"] = $this->getStatus();
$info["processed"] = $processedPosts;
echo json_encode($info,true);
die();
}
<?php
namespace app;
class App
{
public $post;
public $get;
public $path;
public $host;
public function parseUrl()
{
if (isset($_POST)) {
foreach ($_POST as $key => $value)
self::$post[$key] = $value; // или $this->post[$key] = $value;
}
if (isset($_GET)) {
$url = parse_url($_GET);
self::$host = $url['host'];
self::$path = $url['path'];
parse_str($url['query'], self::$get); // к примеру урл будет http://site.com/dolls/?sort=color в таком случае получится self::$get['sort'] = "color";
}
unset($_POST, $_GET, $_REQUEST);
}
}
<?php
// что получилось
use app;
App::parseUrl();
echo "<pre>";
var_dump(App::$host, App::$path, App::$get);
echo "</pre>";
Мне все же кажется оптимальнее будет раскидывать по N дешевым серверам хранения. Заодно использовать их оперативку под кеш картинок. Но это только кажется. Как на деле будет даже не представляю )