Further to my previous post regarding updating the user’s profile box on a Facebook application, I found this site which shows you how to update everyone’s profile content in one go. Of course, this means its Asynchronous, which isn’t exactly what we want, but it appears this is the best Facebook allows for now. Obviously this poses a number of problems:
- When to do the update. Since there is the opportunity to have people from all over the world using your app, there’s very little chance of there being actual downtime in which all the updates can take place. Similarly, if you need to update things once a day at midnight, you should really be checking which country the user comes from and update their profile content at the right time.
- Resources. If you’ve got thousands of users, how do you process all of them without killing your server? There are,of course, many solutions to this (I’ve implemented something similar to this on a project of ours at work), but I think they’re all pretty resource intensive. In the worst case when everyone’s profile is different, even caching won’t help you.
- How often to do the update. This of course depends on the nature of your application. With Blaccu, currently I only update everything once a day, but of course the weather will be changing many times during that day (subsequent visits to the canvas page / using the refresh button on the profile page do refresh the profile with the current weather, however), so it would be ideal to have it update many times during the day. This isn’t so bad now when I don’t have many users, but what about when (/if) I’vegot lots of users?
All things considered, this is a bad way of doing things, and it’s Facebook’s fault. I would love to see a way of making an Ajax call when the page loads, so that the content in the profile box could be drawn in asynchronously and be completely up to date. We’ll just have to wait and see, I suppose.