i am trying to making php ajax based chat system....and i have developed it successfully...i am using jquery load() with setInterva开发者_运维技巧l to reload chat every 1 second and it works fine on my localhost....but when i uploaded it on my hosting server it also works fine ... but problem is that after few mintues of chat the server takes to much long gets heavy loaded so that my server goes and and site goes down...
my question is that, why it is happening so far...and what is the solution...should i use standard xmlhttprequest instead of load() or $.ajax() instead of load();
The method you use to make the AJAX request doesn't matter, you have something else wrong in your code that is causing the slowing down.
jQuery.load() and jQuery.ajax() are basically front-ends for XMLHttpRequest. If they add extra overload (which is possible) it would only affect the browser.
Are you sure your server can handle such load? One request per second means that one single user triggers a minimum of 3600 requests per hour of conversation and I presume each request involves at least a database lookup. Now, being a chat server you are expected to have many simultaneous users.
Things you can try:
- Lower the refresh rate
- Do no not send new requests while they're pending ones
- Make sure the server-side script is lightning fast
Try increasing the refresh interval from 1 second to, say, 10 seconds.
Tatu is correct - think about what each request is returning and what is actually required. For example, are you returning the entire chat log, or just the new messages since the last poll? If there is no activity for a while, is there a need to poll every second? Consider increasing the poll time each time there's nothing new (and reset it back to 1 second when there is something new).
You could also take a look at COMET methods for applications which require "push" technology.
精彩评论