In my last post, I mentioned some plans that I had for enhancements.
In the future, one major enhancement I'd like to make to RottenFlix is to redesign it to use Web Workers. My original design of RottenFlix fetched all relevant movie ratings up-front with no action required from the user, but it was just too slow and it blocked the UI awkwardly. With Web Workers I'm pretty confident I could go back to my original vision and make it fast and usable.
There's also the issue of new movie titles that are brought into the page via Netflix's own Ajax effects. RottenFlix does not currently handle those movie titles. I could probably make this work, but I'm not sure how.
Well, after banging my head against the wall extensively on both of these issues, I've reached some conclusions.
- It's not actually possible to use workers within Greasemonkey. After much experimentation, googling, and finally Stack Overflowing, I had to accept the fact that my dream of a multi-threaded RottenFlix was dead. Bummer.
- This one has a happy ending. After a long fruitless journey down the Live Query path, I stumbled upon a short paragraph in a Dr. Nic blog post that shed light on why Live Query wasn't working for me and never would. Luckily, that post also pointed me at setInterval(), which worked beautifully for my scenario. I'm happy to report that RottenFlix now accounts for movie titles that are added to the page dynamically, and it only took 3 lines of code! (Look at the first 3 changes in this diff, if you're curious.)
Now that I've settled these issues, I'm not sure where RottenFlix will go from here. I built this thing for myself, and I'm very happy right now with the functionality. It might benefit from some UI polish. We'll see...