minnirok
asked on
some progress indicator during http request
Hi,
Does anyone have some sample code for showing a little progress bar when an ajax operation is happening? I have something like:
function StartRequest()
{
alert("start ajax call");
httpRequestObject.sendRequ est(..);
}
function HandleResponse()
{
alert("ajax call done");
}
Is there anyway to measure progress of the call to give some visual representation of it? Should I just set an image to say 'loading' in StartRequest(), then hide it whenever HandleResponse() executes?
Any ideas would be great,
Thanks
Does anyone have some sample code for showing a little progress bar when an ajax operation is happening? I have something like:
function StartRequest()
{
alert("start ajax call");
httpRequestObject.sendRequ
}
function HandleResponse()
{
alert("ajax call done");
}
Is there anyway to measure progress of the call to give some visual representation of it? Should I just set an image to say 'loading' in StartRequest(), then hide it whenever HandleResponse() executes?
Any ideas would be great,
Thanks
Some modification to @nito8300's solution..
+++++++++++++++++++++++++
<div align="center">
<table>
<tr>
<td>
<div style="BORDER: black 1px solid; PADDING: 1px;width:205;height:15;">
<span id="progress" style="height:15;width:10; "></span>
</div>
</td>
</tr>
</table>
</div>
<!-- Demonstration -->
<script language="javascript">
var progressEnd = 100;
var progressColor = '#DD0000';
var progressInterval = 20;
var spanWidth = 0;
var progressAt = 0;
var progressTimer;
function progress_clear() {
document.getElementById('p rogress'). style.back groundColo r = 'transparent';
spanWidth = 0;
progressAt = 0;
}
function progress_update() {
progressAt++;
if (progressAt > progressEnd)
progress_clear();
else
document.getElementById('p rogress'). style.widt h = spanWidth;
document.getElementById('p rogress'). style.back groundColo r = progressColor;
progressTimer = setTimeout('progress_updat e()',progr essInterva l);
spanWidth += 2
}
function progress_stop() {
clearTimeout(progressTimer );
progress_clear();
}
progress_update();
</script>
+++++++++++++++++++++++++
-raj-
+++++++++++++++++++++++++
<div align="center">
<table>
<tr>
<td>
<div style="BORDER: black 1px solid; PADDING: 1px;width:205;height:15;">
<span id="progress" style="height:15;width:10;
</div>
</td>
</tr>
</table>
</div>
<!-- Demonstration -->
<script language="javascript">
var progressEnd = 100;
var progressColor = '#DD0000';
var progressInterval = 20;
var spanWidth = 0;
var progressAt = 0;
var progressTimer;
function progress_clear() {
document.getElementById('p
spanWidth = 0;
progressAt = 0;
}
function progress_update() {
progressAt++;
if (progressAt > progressEnd)
progress_clear();
else
document.getElementById('p
document.getElementById('p
progressTimer = setTimeout('progress_updat
spanWidth += 2
}
function progress_stop() {
clearTimeout(progressTimer
progress_clear();
}
progress_update();
</script>
+++++++++++++++++++++++++
-raj-
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I have to agree with kernelv12 on this - I've decided to just show an animated gif to indicate something is happening, so please wait, etc.
Thanks
Thanks
<div align="left">
<table>
<tr>
<td>
<div style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: black 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; PADDING-BOTTOM: 2px; BORDER-LEFT: black 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: black 1px solid">
<span id="progress1"> </span> <span id="progress2">  
</span> <span id="progress4"> </span> <span id="progress5">
</span> <span id="progress6"> </span> <span id="progress7">
</span> <span id="progress8"> </span> <span id="progress9">
</span>
</div>
</td>
</tr>
</table>
</div>
<!-- Demonstration -->
<script language="javascript">
var progressEnd = 9;
var progressColor = '3A76BC';
var progressInterval = 50;
var progressAt = progressEnd;
var progressTimer;
function progress_clear() {
for (var i = 1; i <= progressEnd; i++) document.getElementById('p
progressAt = 0;
}
function progress_update() {
progressAt++;
if (progressAt > progressEnd) progress_clear();
else document.getElementById('p
progressTimer = setTimeout('progress_updat
}
function progress_stop() {
clearTimeout(progressTimer
progress_clear();
}
progress_update();
</script>