2

I'm trying for the life of me to get this plugin to work but I'm not understanding the status function so retry is not firing.

$.poll(10000, function(retry){
  $.get('willfail', function(response, status){
    if (status == 'success') {
      // Do something
      alert("YES");
    } else {
      alert("NO");
      //retry();
    }
  })
})

If I set the get request to '/' it will give me the alert YES message, but as it is, the alert No message never gets fired despite the ELSE.

I'm using a jquery polling plugin:

https://github.com/jeremyw/jquery-smart-poll

Any ideas?

ere
  • 1,739
  • 3
  • 19
  • 41
  • 1
    The code in `// Do something` may be silently failing so you never get to `alert("YES");` but also don't see `alert("NO");`. – justkt Apr 14 '11 at 15:15

2 Answers2

2

You can also use Smartupdater - jQuery plugin

http://www.eslinstructor.net/smartupdater/

which let you:

  • Stop/Restart polling
  • Change polling timeout dynamically
  • Switch polling URL dynamically
  • Switch callback function dynamically
  • Remotely set polling timeout
  • Remotely select callback function
vadimk
  • 1,461
  • 15
  • 11
1

That is probably a bad example. The callback passed to $.get will only be fired if the request succeeded. Try this:

$.poll(10000, function(retry){
  $.ajax({
      url:'willfail',
      success: function(){
          // Do something
          alert("YES");
      },
      error: function() {
          alert("NO");
          retry();
      }
  });
});

For more information, have a look at $.ajax.

Felix Kling
  • 795,719
  • 175
  • 1,089
  • 1,143