I’m having to interact with the Facebook API for this project, which I find to be actually a bit slower than I expected. Because of this, I’m having to do something which I find rather unorthodox: I need to load the content Facebook provides back in my PHP script AS IT LOADS from Facebook. Traditionally I’ve loaded content into a div tag at the success of the script; however, I need to load the content as it appears. It would be absolutely unacceptable to have a client wait nearly a minute for Facebook to load an album and all respective comments before displaying anything. Hopefully I’m not being to vague; I’m not here to ask for code, but I’ve tried just about everything I can think of. Is this a simple concept I’m missing?… I feel as though this is easier than I’m making it.
I’m using jQuery AJAX as I find this easiest to work with. Any comments and/or help would be greatly appreciated.
The root of your problem is that jQuery’s AJAX methods hook into the
onreadystatechangeevent andreadyStatevariable.readyStateis only set to 4 when the file is completely transferred, and therefore your events will only fire after the download is complete.Accessing the data as it is being sent is not consistent across different browser families. Doing it this way is going to be incredibly complex and time-consuming. I would recommend first doing this a little differently, perhaps by preloading the relevant facebook data on your own server predictively. This can be compiled to a static page, and that can in turn be served to your users very quickly.
To get the data to your users faster, you’ll need to work outside the box as well. There’s a jQuery plugin discussed here ( Does PHP flush work with jQuerys ajax? ) that makes jQuery ajax methods compatible with streamed output. Good luck.