Подскажите пожалуйста, есть ли возможность определить нажато ли play или нет, или нажата pause, а может флеш ролик уже закончился. Как контролировать эти параметры?
function myFunc(){
alert('Hello!');
}
$(function(){
$.ajax({
success: function(){
setTimeout(function(){
myFunc();
},5000);
}
});
})();
Пока Вы писали новую я доделал старую ))
Но у меня тогда отдавало не обновленный json, может дело было в том что таймером опять вызывался ajax? Пора заканчивать, я тут уже до отрицательного рейтинга написался.
Вполне вероятно, я привел данный пример чтобы показать что можно использовать ответ ajax функции в любом месте скрипта, а также можно обойтись без крон. В настоящее время я пишу ещё один скриптик, который будет использовать котировки 35ти валют за последний год, всё будет загоняться в субд, и наверное всё таки привяжу к крон. Старый proxy.php будет переделан уже под работу с субд.
Для ясности наверное приведу proxy.php <?php
$filename = "curences.json";
if (is_readable($filename)) {
$fd = fopen($filename, "r") or die("Can't open file!");
$fstring = fread($fd, filesize($filename));
$fjson = json_decode($fstring);
fclose($fd);
}
$date = date('Y-m-d', time()-86400);
if ($fjson -> data != $date) {
require_once("ClassExchangeRatesCBRF.php");
$rates = new ExchangeRatesCBRF($date);
$array = array();
$array["data"] = $date;
$array["USD"] = $rates->GetRate("USD");
$array["EUR"] = $rates->GetRate("EUR");
$array["UAH"] = $rates->GetRate("UAH");
$json = json_encode($array);
//Если файл существует и в него возможна запись
if ($array["USD"]>0) {
if (is_writeable($filename) ) {
// Открыть файл и установить указатель текущей позиции в начало файла
$fd = fopen($filename, 'w');
// Записать содержимое $data в файл
fwrite($fd, $json);
// Закрыть файл
fclose($fd);
}
}
}
?>
Потому что решение старые новые или старые основывается на серверном времени, а не клиентском. У клиента время может на год назад стоять, да и часовые пояса.
Потому что есть политика безопасности браузеров, напрямую наполнять данными с другого сервера можно только с jsonp. В моём случае дополнительно используется php класс для общения с цбрф, так что по другому никак.
Дело в том что если без таймера считать json, то тот самый первый пользователь, который как Вы выразились продёрнет обновление курсов, увидит старые данные (данные обновляются до 20сек).
proxy.php наполняет при помощи api цбрф актуальными данными файл curences.json, наполнение происходит с приходом первого посетителя в определённые 24 часа, а в остальное время, Вы совершенно правы используются старые данные. Про полурыбнй вопрос не понял.
Если совсем буквально, то конечно ждать приходиться долго, именно поэтому пришлось извратиться.
Локальная в области видимости соответствующей — с этим пока не знаком. Где то слышал что с функцией ajax setInterval setTimeout по другому как то принято, но получилось пока так.
function myFunc(){
alert('Hello!');
}
$(function(){
$.ajax({
success: function(){
setTimeout(function(){
myFunc();
},5000);
}
});
})();
Пока Вы писали новую я доделал старую ))
Но у меня тогда отдавало не обновленный json, может дело было в том что таймером опять вызывался ajax? Пора заканчивать, я тут уже до отрицательного рейтинга написался.
<?php
$filename = "curences.json";
if (is_readable($filename)) {
$fd = fopen($filename, "r") or die("Can't open file!");
$fstring = fread($fd, filesize($filename));
$fjson = json_decode($fstring);
fclose($fd);
}
$date = date('Y-m-d', time()-86400);
if ($fjson -> data != $date) {
require_once("ClassExchangeRatesCBRF.php");
$rates = new ExchangeRatesCBRF($date);
$array = array();
$array["data"] = $date;
$array["USD"] = $rates->GetRate("USD");
$array["EUR"] = $rates->GetRate("EUR");
$array["UAH"] = $rates->GetRate("UAH");
$json = json_encode($array);
//Если файл существует и в него возможна запись
if ($array["USD"]>0) {
if (is_writeable($filename) ) {
// Открыть файл и установить указатель текущей позиции в начало файла
$fd = fopen($filename, 'w');
// Записать содержимое $data в файл
fwrite($fd, $json);
// Закрыть файл
fclose($fd);
}
}
}
?>
success: setTimeout(function(){ curencesjson()}, 20000);
Локальная в области видимости соответствующей — с этим пока не знаком. Где то слышал что с функцией ajax setInterval setTimeout по другому как то принято, но получилось пока так.