Well I have some simple text file, I am trying to read that file contents using php and update it to the user.I was setting up the ajax request for every 2 seconds but the problem is the file wont be updated for every 2 seconds may be 15 or 30 or 1 minute long.So i thought of doing this
check the last modified time of file and if it is different then only update it to the user but here where I am stucked at.
Javascript functions
function read()
{
read_text();
t=setTimeout("read()",200);
}
function read_text()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById('read').innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","demo.php",true);
xmlhttp.send();
}
My php file
<?php
$a = fileattime("filenam");
$b = fileattime("filenam");
if($b > $a )
{
echo "update contents";
$a = $ b;
}
?>
I thought to store the last modified time of file in $a
variable and compare the value with $b
variable but here $a
will be overwritten with the new value for every ajax request. I want $a
to be assigned a value only once, I mean for the first ajax request then later on compare it with $b
value and if $b
is greater than $a
then update the contents to user then fill up $a
with $b
but this is where i stucked at. Any help is greatly appreciated.Thanks
Try creating a session, and storing the information in a session variable.
http://us3.php.net/manual/en/reserved.variables.session.php
If you do that, you'll have a persistent value that you can use to test against to see the last modified / updated value.
Be sure to do session_start() at the beginning of the script.
You can have it look something like this.. JS:
// standard Ajax stuff
xmlhttp.open("GET", "demo.php?request=1", true);
xmlhttp.send();
PHP:
<?php
session_start();
if($_GET['request'] == 1) $_SESSION['modified_since'] = fileattime('filename');
$a = $_SESSION['modified_since'];
$b = fileattime("filename");
if($b > $a) {
echo "Update Contents";
$_SESSION['modified_since'] = $b;
}
?>
For every user should be assigned unique ID and the last time should be stored for example in database. Unique ID may be but in cookie after first request and then be used to find information in database.