For some people IFrames seem to be the best invention since sliced bread. IFrames can best be classified as an Integration Pattern. As such, it has the following characteristics:
- Quick visual integration of content from other web sites
- Loading on the client side (zero extra bandwidth usage on the server)
- Asynchronous loading of page elements
- Styling at the source
- Maintenance on the IFrame source independent of the window in which it is integrated
In other words:
- It's cheap
- It's fast
- It's just those puritan technical guys who are always against this great solution!!! :-(
Is it just because they are puritan, or is it because they like to spend more hours working on a more expensive solution. That would mean higher bills or avoiding unemployment...
Technical employees are only working in their own best interest!
Is that true?
I think the truth is that people who like IFrames are addicts. They are addicted to a quick and dirty solution that solves their short-term needs and leads to illness of the system on the long run.
How does the system get sick of IFrames?
In many ways, both technical and practical.
Let's start with the practical disadvantages of IFrames:
Corporate branding and styling tends to change every few years. For web sites, these styles change even quicker than their paper counterparts.
For a well-written web site using proper XHTML and CSS, style changes only have impact on the CSS files of the site. If written properly, this is a single (set of) file(s) used for the whole site.
Using IFrames however, you have to change the styles of every IFrame separately. Depending on how long you have been addicted, this could mean changing the styles of maybe a 100 or more content/service providers.
Or you could not change them and have an inconsistent look and feel mixing new styles with remainings of the old styling in IFrames.
What happens when the site providing the IFrame content is down?
Usually this means awkward browser errors within the IFrame on the site. No fallback, no control and no friendly message from your side.
Does your IFrame provider have the same standards for uptime and performance as you have? You get what you pay for, in this regard.
What is the conversion rate of users within the IFrame?
On your own site, you are using tools like Google Analytics or paid alternatives to measure the success of your site. But you probably don't have a clue of what happens inside the IFrames on your site.
In the best case, the content provider of the IFrame may give you some numbers, but proper analysis of which users got how far in the funnel is not available.
Is your real life shop accessible for people in wheel chairs?
Then why isn't your website accessible for people using text-to-speech readers of braille devices?
In real life it seems harsh to have a policy not to care about wheel chairs. On the seemingly anonymous internet it is quite common to forbid access to a group of people who could benefit most of a medium like internet.
Do you care about security?
IFrames are vulnerable to cross site scripting attacks. Especially IFrames providing paid services are an interesting target to hackers.
Does that seem far-fetched to you?
Think again and take a look at http://ha.ckers.org/xss.html
Or should I have put that link in an IFrame to prevent you from clicking away from this blog?
A few alternatives to IFrames:
- For any purpose: links ("deeplinks" in buzzword jargon)
- For content: Atom Publishing Protocol (or similar non-standard alternatives)
- For services: WSRP (or similar non-standard alternatives)
- Or with a bit more work: Web services; different front ends for different clients
It all starts with a confession: are you an IFrame addict?
1 comment:
I don't mind the occasional mild addiction and I like iframes in the following situation:
A client has an elaborate website 'template' which - as you point out - they are likely to change every year or two.
You want to develop a web-based application, running on the client's server. If you create a single page, based on the client's current template and plonk an iframe tag to the application, your application runs within whatever html horrors the client has foisted on the world; you reveal nothing to the outside world about the structure of your application (apart from its start page); when the client's ponytails redevelop the corporate branding, you can update your application with a single line of code. I like iframes in this situation and I am very sorry they are being deprecated. Any thoughts?
Post a Comment