Debes hacer en una funcion ajax que llame al archivo php que llama a esa funcion:
más o menos, para que te hagas una idea (y partiendo de la base de que no sabes nada de ajax):
Creamos un objeto Ajax:
Código PHP:
function crearObjeto() {
var req = null;
var acv = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
}
else if(window.ActiveXObject) {
for (var i = 0; i < acv.length; i++) {
try {
var actx = new ActiveXObject(acv[i]);
req = actx;
}catch (error) {}
}
}
else {
alert('Error fatal. Tu ordenador va a explotar');
}
return req;
}
Y creamos la funcion que llama a tu querida funcion (si sólo quieres que se ejecute esa function, métela aislada en un archivo php. Hasta dónde yo se (novato), no se puede llamar a una funcion específica sin usar frameworks en plan XAJAX)
No se si le debes pasar argumentos o no. Presupongo que no.
Código PHP:
function getMensajes() {
peticion = crearObjeto();
peticion.open('GET', 'ver_mensajes.php', true);
peticion.onreadystatechange = function() {
if(peticion.readyState == 1){
document.getElementById('divdondetieneslosmensajes').innerHTML = "Cargando comentarios...";
}
else if(peticion.readyState == 4) {
if(peticion.status == 200) {
document.getElementById('divdondetieneslosmensajes').innerHTML = peticion.responseText;
}
}
peticion.send(null);
}
Datos: divdondetieneslosmensajes -> no hace falta explicar...
ver_mensajes.php -> archivo donde está la función vermensajes(). Recuerda que debe "escribir" algo, pues lo que hace la funcion es mas o menos meter en el div lo que te hace dicha funcion php.
Para hacerlo cada tres segundos, una sencilla línea que llamas al principio:
Código HTML:
setInterval("getMensajes()",300);
Repasa bien los corchetes, pues puede que me haya comido alguno.. Un saludo