Forgive the vague title, but the title I wanted to use would reveal the secret behind the mystery that plagued a reader of mine for the past few days. He was using cfdiv to load dynamic content and discovered that the content would loop itself in a loop. What do I mean? Imagine a page with one cfdiv using bind=”url:content.cfm”. You would expect that when the page loaded, there would be one HTTP request to load content.cfm. Instead, he was seeing the following (and again, for Mac Firefox users, click the upper left hand triangle if you don’t see a big play button):
What you are seeing here is a few reloads and the Ajax loads normally, and then all of a sudden the last reload causes an infinite reload as reported by Firebug.
I had no idea what the problem was until my reader mentioned he was using SES urls. Guess what - that was the issue. I simply added /x/1 to my URL (for example: http://localhost/test.cfm/x/ismell).
If you think about it, it kind of makes sense that a cfdiv with this url “test.cfm”, isn’t qualified and would be a problem. However, I would not have guessed tht it would cause the constant looping as is shown above.
The fix, of course, is to change the cfdiv to use a full url:
<cfdiv bind="url:/data.cfm" />