2009-09-18 6 views
1

J'ai besoin de savoir, est-il possible de trouver un fichier dans le serveur web est mis à jour en utilisant javascript. Dans mon application Java, je suis en train de mettre à jour un fichier en utilisant java si une erreur se produit, comme un enregistreur .. En utilisant javascript, j'ai besoin de lire ce fichier immédiatement si des mises à jour ont eu lieu. Est-il possible de faire ça ??? Si oui, pouvez-vous venir avec une idée pour le faire ??? Si possible avec un code clair ou un exemple .... Thanx à l'avance ..Comment trouver un fichier dans le serveur web est mis à jour en utilisant javascript

Répondre

0

Pas de, vous ne pouvez pas lire le contenu d'un fichier en utilisant JavaScript. JavaScript réside sur le client et ne peut pas lire le contenu du fichier côté serveur.

Vous pouvez demander le fichier entier en utilisant AJAX et obtenir la réponse. Par ceci vous pouvez demander une page de côté de serveur et obtenir le contenu de dossier de là et vérifier pour n'importe quelle modification. Et ensuite passer une réponse au client montrant si le fichier a été mis à jour ou non.

+0

Votre première déclaration est en contradiction avec votre deuxième, même si je comprends ce que vous dites. – Thiyagaraj

3

Tant que le fichier est un fichier statique et hébergé dans la racine Web, vous pouvez utiliser une requête HEAD pour inspecter la date et l'heure du fichier. Toutefois, étant donné que JavaScript utilise la date et l'heure du client, vous devez garder à l'esprit les fuseaux horaires du client.

À ce stade, vous devrez interroger le serveur toutes les n secondes pour rechercher les mises à jour.

demande HEAD est déjà traitée ici: HTTP HEAD Request in Javascript/Ajax?

Une demande HEAD retourne quelque chose comme ceci:

HTTP/1.1 200 OK 
Server: Microsoft-IIS/4.0 
Cache-Control: max-age=172800 
Expires: Sat, 06 Apr 2002 11:34:01 GMT 
Date: Thu, 04 Apr 2002 11:34:01 GMT 
Content-Type: text/html 
Accept-Ranges: bytes 
Last-Modified: Thu, 14 Mar 2002 12:06:30 GMT 
ETag: "0a7ccac50cbc11:1aad" 
Content-Length: 52282 

Exemples de requêtes HEAD sont également ici: http://www.jibbering.com/2002/4/httprequest.html

Et cette page a celui que vous cherchiez:

xmlhttp.open("HEAD", "/faq/index.html",true); 
xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4) { 
    alert("File was last modified on - "+ 
    xmlhttp.getResponseHeader("Last-Modified")) 
    } 
} 
xmlhttp.send(null) 

Vous auriez besoin de formater la date et l'heure ... mais là vous l'avez.

+0

Votre idée est bonne, mais puis-je trouver quelles données sont mises à jour atlast ... Parce que je dois récupérer ce contenu seul .... –

+0

Ce que j'ai décrit est une méthode pour déterminer si un fichier a été mis à jour et alors agissez dessus ... Je ne peux pas vous dire quelles données dans le fichier ont été mises à jour, pour cela vous devrez penser aux données dans le dossier étant stockées de telle manière que vous soyez capable de faire de telles déterminations. Par exemple, vous pouvez inclure un horodatage chaque fois que vous écrivez dans le fichier, puis afficher toutes les lignes qui se produisent dans les 5 dernières minutes. Ou vous pourriez montrer les X dernières lignes de sorte qu'il est équivalent à "queue -f" de * nix –

Questions connexes