Я думаю, что есть пара вещей, которые вы должны сделать, чтобы исправить это, но главная проблема заключается в ваших функциях:
1) Переместите ваши функции куда-нибудь еще, как в свои собственные файлы:
/ functions.php
<?php
function A()
{
global $variable_functionA;
.... FUNCTION TO CALL API X BY cURL .....
}
function B()
{
global $variable_functionB;
.... FUNCTION TO CALL API Y BY cURL .....
}
2) Включите функции в основной файл, где они используются при загрузке:
/ index.php
<?php
include("functions.php");
include("navigation.php");
?>
<div class="container">
...... MY WEB CONTAINER ........
<div class="auto_refresh">
<?php include("auto_refresh_data.php") ?>
</div>
</div>
<?php include("footer.php") ?>
3) На странице auto_refresh_data.php
вам необходимо снова включить функции, но использовать include_once
вместо include
, чтобы не получить ошибку объявления:
<?php include_once("functions.php") ?>
<div class="style">
<?php
# Presumably you want to run these functions?
A();
B();
... OPERATION FOR GLOBAL VARIBLE RESULT FROM function A and function B ....
?>
</div>
4) Поскольку вы не делаете с ajax ничего особенного, я бы просто использовал .load()
:
<script>
$(function() {
setInterval(function(){
$('.auto_refresh').load('auto_refresh_data.php');
},5000);
});
</script>
В дополнение к этому, я бы, вероятно, посмотрел на использование setTimeout()
рекурсивно против setInterval()
только потому, что если вы получили задержку ответа, вы можете получить эти ответы вне времени. Использование setTimeout
сработает после возврата ответа, а не каждые 5 секунд, независимо от того, возвращен ответ или нет.