Note that there are some explanatory texts on larger screens.

plurals
  1. POLong polling freezes browser and block other ajax request
    primarykey
    data
    text
    <p>I am trying to implement long polling in my <a href="http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html">Spring-MVC Web App</a> but it freezes my browser and other request after 4-5 continues AJAX requests.I have no clue whats goin on here is my relevant code.</p> <p><strong>The controller method:(Server Side):-</strong></p> <pre><code>@Asynchronous @RequestMapping("/notify") public @ResponseBody Events notifyEvent(HttpServletRequest request) { Events events = null; try { events = (Events) request.getSession(false).getServletContext().getAttribute("events"); System.out.println("Request Came from" + ((com.hcdc.coedp.safe.domain.User) request.getSession(false).getAttribute(Constants.KEY_LOGGED_IN_USER)).getLoginId()); if (!events.getTypeOfEvents().isEmpty()) { System.out.println("Removing older entries"); events.getTypeOfEvents().clear(); } while (!events.isHappend()) { //Waiting for event to happen. } events = Events.getInstance(); events.setHappend(false); request.getSession(false).getServletContext().setAttribute("events", events); }catch (Exception e) { e.printStackTrace(); } return events; } </code></pre> <p><strong>The long-polling script(Client Side):-</strong></p> <pre><code>$(document).ready(function() { $.ajaxSetup({ async:true//set a global ajax requests as asynchronus }); alert('Handler for .onload() called.'); waitForMsg(); }); function waitForMsg(){ xhr= $.ajax({ type: "POST", url: '&lt;%=request.getContextPath()%&gt;/notification/notify', async: true, /* If set to non-async, browser shows page as "Loading.."*/ cache: false, timeout:50000, /* Timeout in ms */ global:false, success: function(data){ /* called when request to notifier completes */ /* Doing smthing with response **/ setTimeout( waitForMsg, /* Request next message */ 1000 /* ..after 1 seconds */ ); }, error: function(XMLHttpRequest, textStatus, errorThrown){ addmsg("error", textStatus + " (" + errorThrown + ")"); setTimeout( waitForMsg, /* Try again after.. */ 15000); /* milliseconds (15seconds) */ } }); }; </code></pre> <p><strong>UPDATE:</strong></p> <pre><code>function updateFeed(event, data) { var f=eval(data); alert(f.typeOfEvents.length); } function catchAll(event, data, type) { console.log(data); alert("error"); console.log(type); } $.comet.connect('&lt;%=request.getContextPath()%&gt;/notification/notify'); $(document).bind('feed.comet', updateFeed); $(document).bind('.comet', catchAll); </code></pre> <p>Neither alert box pops up..:(</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload