Я собираюсь ответить, основываясь на ограниченной информации, которая у меня есть, чтобы помочь вам как можно шире, следуя отраслевым стандартам.Вам не нужно кодировать так, как вы это делаете в настоящее время, потому что это очень неэффективно и откровенно опасно.
Вот код mootools, необходимый для запуска опробованного интервала (я использовал Mootools, как вы сказали, что выиспользуя Joomla, я предположил, что вы используете 1.6+, поскольку 1.5 является EOL в этом месяце):
//this sets how often you want to update (in milliseconds).
setInterval('chatPoll()',2000);
//this function essentially just grabs the raw data
//from the specified url and dumps it into the specified div
function chatPoll()
{
var unixTimestamp Math.round(new Date().getTime() / 1000)
var req = new Request({
method: 'get',
url: $('ajax-alert').get('http://www.yoururltoupdate.com/file.php?last=' + (unixTimestamp-2),
data: { 'do' : '1' },
onComplete: function(response) { response.inject($('my-chat-wrapper')); }
}).send();
}
Ваш PHP-файл должен выглядеть примерно так:
get_messages($_GET['last']);
function get_messages($last_id) {
$sql = 'SELECT * FROM #__messages WHERE `id` >'.intval($last_id);
$db->setQuery($sql);
$rows = $db->loadAssocList();
if (count($rows)>0) {
echo json_encode($rows);
}
}
IЯ еще не полностью протестировал этот код, но он должен работать и, если нет, определенно поможет ответить на ваш вопрос о том, как следует достичь того, что вы пытаетесь сделать, а не так, как вы изначально разместили.Если вы действительно хотите стать модным, вы также можете проверить node.js.Также есть множество расширений для Joomla, которые работают в качестве среды чата в целях поддержки, если вы этого хотели.