-
-
Save UnderDogg/efb4d6e646af593a69a4289427a1c3f1 to your computer and use it in GitHub Desktop.
Long Polling using PHP and JQuery
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include 'init.php'; | |
if (!logged_in()){header('Location: index.php'); exit();} | |
include 'template/header.php'; | |
?> | |
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript" ></script> | |
<script src="http://cdn.jquerytools.org/1.2.6/jquery.tools.min.js"></script> | |
<style type="text/css" media="screen"> | |
.msg{ background:#aaa;padding:.2em; border-bottom:1px #99FF99 solid} | |
.old{ background-color:#99FFCC;} | |
.new{ background-color:#A3FFD1;} | |
.error{ background-color:#992E36;} | |
</style> | |
<link rel="stylesheet" type="text/css" href="http://static.flowplayer.org/tools/css/standalone.css"/> | |
<link rel="stylesheet" type="text/css" href="http://static.flowplayer.org/tools/css/overlay-basic.css"/> | |
<script type="text/javascript" charset="utf-8"> | |
var lastMessage; | |
function addmsg(type, data){ | |
var msg = data.substring(0, data.length-5) + "<img id='ajax-loader' src='images/ajax-loader.gif'/><br/>"; | |
console.log(msg); | |
$("#log").html(msg); | |
} | |
function waitForMsg(){ | |
/* This requests the url "msgsrv.php" | |
When it complete (or errors)*/ | |
$.ajax({ | |
type: "GET", | |
url: "getprogress.php", | |
async: true, /* If set to non-async, browser shows page as "Loading.."*/ | |
cache: false, | |
timeout:500, /* Timeout in ms */ | |
success: function(data){ /* called when request to barge.php completes */ | |
//if(data!=''){ | |
if( data.split('\r\n\r\n')[1] != 'Complete'){ | |
addmsg("new", data); | |
lastMessage=data; | |
setTimeout('waitForMsg()',2000); | |
}else{ | |
console.log(data); | |
$("#ajax-loader").replaceWith(""); | |
$("#messages").append("<div class='msg new'>Resist has completed. Please wait for the plot.</div>"); | |
//abort(); | |
} | |
//} | |
}, | |
error: function(XMLHttpRequest, textStatus, errorThrown){ | |
//addmsg("error", textStatus + " (" + errorThrown + ")"); | |
setTimeout( | |
'waitForMsg()', /* Try again after.. */ | |
"15000"); /* milliseconds (15seconds) */ | |
}, | |
}); | |
}; | |
$(document).ready(function(){ | |
$("#start").show(); | |
$("#messages").hide(); | |
$("button").click(function(){ | |
$("button").hide(); | |
$("#messages").show(); | |
$.post("process.php",{cmd:"start"}); | |
waitForMsg(); | |
}); | |
$("img[rel]").overlay(); | |
}); | |
</script> | |
<button >Start</button> | |
<div id="messages"> | |
<div class="msg old">Stated RESIST</div> | |
<div id='log' class='msg new'></div> | |
</div> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment