| View previous topic :: View next topic |
| Message |
|
Author
|
Siberwulf
Newbie
|
Joined: 18 Jul 2006
Posts: 5
|
|
Posted: Tue Jul 18, 2006 4:00 am
Post subject: First page load and caching |
|
|
I've been working on a project using AJAXPro.2 and .NET 2.0.
Essentially, every time I come to the page for the first time, my call to ajax returns 'null' (I get errors when I check it using typeof( ).
However, when i hit refresh, everything performs nominally.
Another oddity: I've put the AJAX call in a setInterval format, so it executes every 5 seconds. However, on the first time to the page, it will poll every 5 seconds, and still not return anything that can be compared using typeof( ).
Any help is appreciated. I'm using AJAXPro.2.dll v6.7.11.1
Thanks!
|
| Back to top |
|
 |
|
Author
|
MichaelSchwarz
Intermediate
|
Joined: 11 Jul 2006
Posts: 252
|
|
Posted: Wed Jul 19, 2006 4:00 am
Post subject: |
|
|
Hi,
one big mistake is the use of setInterval because Ajax requests should run asynchronous and a call can run longer as your timer. Please change this to setTimeout and call another setTimeout in the callback:
function callback(res) {
// do your work here
// and then call the setTimeout
setTimeout(invoke, 1000);
}
function invoke() {
Namespace.Class.MyMethod(1, 2, 3, 4, callback);
}
This example will call MyMethod nearly every second (1000 msec).
Regards,
Michael
On 7/17/06, Siberwulf <Siberwulf> wrote:
| Quote: |
I've been working on a project using AJAXPro.2 and .NET 2.0.
Essentially, every time I come to the page for the first time, my call
to ajax returns 'null' (I get errors when I check it using typeof( ).
However, when i hit refresh, everything performs nominally.
Another oddity: I've put the AJAX call in a setInterval format, so it
executes every 5 seconds. However, on the first time to the page, it
will poll every 5 seconds, and still not return anything that can be
compared using typeof( ).
Any help is appreciated. I'm using AJAXPro.2.dll v6.7.11.1
Thanks!
>
-- |
Best regards | Schöne Grüße Michael
Microsoft MVP - Most Valuable Professional Microsoft MCAD - Certified Application Developer
http://weblogs.asp.net/mschwarz/
http://www.schwarz-interactive.de/
mailto:info
|
| Back to top |
|
 |
|
Author
|
Siberwulf
Newbie
|
Joined: 18 Jul 2006
Posts: 5
|
|
Posted: Wed Jul 19, 2006 4:00 am
Post subject: |
|
|
Michael,
Thanks for the reply. However, I don't believe that solution will work. Right now, my page has about 15 controls that are polling for data to display (call it a ueber chat room). The issue we previously had was that calls were stepping on each other, due to the frequency in which they were polling for data. I devised a pipeline of sorts, where only one control at a time could have access to calling their own ajax method at one time. This worked, but as you can see there are some kinks. In your model above, as soon as I got denied access to the pipe, the loop would stop.
Might you have some alternative ideas?
thanks again in advance.
|
| Back to top |
|
 |
|
Author
|
MichaelSchwarz
Intermediate
|
Joined: 11 Jul 2006
Posts: 252
|
|
Posted: Wed Jul 19, 2006 4:00 am
Post subject: |
|
|
What do you mean with "as I got denied access to the pipe"? AjaxPro will every time call the callback or onTimeout handler.
Regards,
Michael
On 7/18/06, Siberwulf <Siberwulf> wrote:
| Quote: |
Michael,
Thanks for the reply. However, I don't believe that solution will
work. Right now, my page has about 15 controls that are polling for
data to display (call it a ueber chat room). The issue we previously
had was that calls were stepping on each other, due to the frequency in
which they were polling for data. I devised a pipeline of sorts, where
only one control at a time could have access to calling their own ajax
method at one time. This worked, but as you can see there are some
kinks. In your model above, as soon as I got denied access to the
pipe, the loop would stop.
Might you have some alternative ideas?
thanks again in advance.
>
-- |
Best regards | Schöne Grüße Michael
Microsoft MVP - Most Valuable Professional Microsoft MCAD - Certified Application Developer
http://weblogs.asp.net/mschwarz/
http://www.schwarz-interactive.de/
mailto:info
|
| Back to top |
|
 |
|
Author
|
Siberwulf
Newbie
|
Joined: 18 Jul 2006
Posts: 5
|
|
Posted: Wed Jul 19, 2006 4:00 am
Post subject: |
|
|
(to clarify, this is very similar to the lock() command in C#.-
|
| Back to top |
|
 |
|
Author
|
Siberwulf
Newbie
|
Joined: 18 Jul 2006
Posts: 5
|
|
Posted: Wed Jul 19, 2006 4:00 am
Post subject: |
|
|
Basically, I created a pipe system. It contains a var that says who is using the pipe and how long they've had it.
When a control wants to execute its ajax method, it checks to see if the pipe isn't in use. If the pipe is in use, the method will try again after its next setInterval(). If the pipe isn't in use, the control will claim it, set it as "in use" and then do its function.
When the function is done (asynch or synch, it doesn't matter), then the control will mark the pipe as open again.
This was setup, becuase 15 controls executing at the same time was causing issues where each could and would step on the other.
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|