Skip to content
CMO & CTO
CMO & CTO

Closing the Bridge Between Marketing and Technology, By Luis Fernandez

  • Digital Experience
    • Experience Strategy
    • Experience-Driven Commerce
    • Multi-Channel Experience
    • Personalization & Targeting
    • SEO & Performance
    • User Journey & Behavior
  • Marketing Technologies
    • Analytics & Measurement
    • Content Management Systems
    • Customer Data Platforms
    • Digital Asset Management
    • Marketing Automation
    • MarTech Stack & Strategy
    • Technology Buying & ROI
  • Software Engineering
    • Software Engineering
    • Software Architecture
    • General Software
    • Development Practices
    • Productivity & Workflow
    • Code
    • Engineering Management
    • Business of Software
    • Code
    • Digital Transformation
    • Systems Thinking
    • Technical Implementation
  • About
CMO & CTO

Closing the Bridge Between Marketing and Technology, By Luis Fernandez

Partial Page Updates: Fast without Flash

Posted on November 26, 2006 By Luis Fernandez

Partial Page Updates: Fast without Flash. That was the pitch I made to a product manager this week after watching a full page reload grind through a simple rating widget. Click. White screen. Spinner. Repaint. The moment had all the drama of watching paint dry. We do not need it. We can keep people in the flow, skip the reload, and still stay in the warm arms of HTML, CSS, and JavaScript. No plugin installs. No surprise grayscreens. Just the right piece of the page changing when the user asks for it.

Flash still has its place for video and games, sure. But for forms, search results, comments, carts, dashboards, and every little bit in between, AJAX style partial updates are the sweet spot. You have seen it in Gmail and Google Maps. You click and the world does not blink. That is the feeling we want across regular sites too, not just apps with giant budgets.

The story that flipped the switch

We were testing a profile page. Changing a single field would reload a 120 kilobyte template, refetch the same CSS, and re run the same scripts. The network tab looked like a parade. The fix was not a redesign. We taught the Save button a new trick. It sends a small request, the server responds with a tiny confirmation and fresh markup for just the edited block, and we swap it in. From three seconds to under half a second on my not so new laptop with Firefox 2. And it felt instant because the rest of the page never moved.

How partial updates work without the drama

This is the simple loop that powers most AJAX on the web right now. Listen for a click or submit. Prevent the default. Fire an XMLHttpRequest. Server returns either a small HTML fragment or JSON. Update the DOM. That is it. Libraries like Prototype, jQuery 1.0, script.aculo.us, and Yahoo UI make the ceremony short and keep cross browser quirks in their box. IE6 and IE7, Firefox 2, Safari, and Opera will play along if you keep to the basics.

A few rules that save pain:

  • Pick your payload. If you are dropping content straight into the page, HTML snippets are simple and fast. If you have to update many fields or do math in the client, JSON is light and easy to handle. Do not eval random strings. Treat JSON as data, not code.
  • GET for reads, POST for changes. Browsers and proxies cache GET. That makes repeated filters and pagination snappy. Use proper cache headers. ETag, Last Modified, and 304 Not Modified help the browser skip downloads. Turn on gzip on the server and shave more bytes.
  • Respect the back button. Full page apps forget history. Do not. Update the location hash when the view changes so people can go back and copy a link. If you need more, the Really Simple History library can help.
  • Progressive enhancement. Start with a normal link or form that works with no script. Then upgrade it. If JavaScript fails, the worst case is a regular full reload that still completes the job.
  • Keep the page alive. Avoid blocking the UI. Show small feedback like a subtle spinner inside the widget you are working with. Do not cover the whole screen. People hate that.
  • Watch for race conditions. Two quick clicks can fire two requests. Disable the button until the response comes back or queue the calls.
  • Security still matters. Escaping output is not optional. Sanitise anything that becomes HTML. Protect forms against cross site request forgery with a token that the server checks.

On the server, keep endpoints tidy. Return only what the client needs. Do not render a full template to cut out one div. That wastes CPU and kills the whole point. Many stacks already help here. Rails RJS can send small updates. ASP.NET AJAX and UpdatePanel aim for similar comfort. Or just keep it simple and return the exact fragment or JSON the browser expects.

Why managers should care about partial updates

Fast feels honest. When a site reacts right away, people try more things, finish more forms, and stop thinking about leaving. The numbers we track echo that. On a checkout we tuned last month, drop offs on shipping options fell by a third after we switched to partial updates. Nothing else changed. Same copy. Same price. We just removed the full reload between steps and kept the person anchored on the page.

There is also real money saved. Full reloads pay the tax of layouts, images, and scripts again and again. Partial updates let us ship kilobytes instead of hundreds of kilobytes. That trims bandwidth and CPU on both sides. It also lowers the chance that a slow third party asset drags the whole experience. If an ad server hiccups, the rating widget still works because it talks straight to your app.

I will not pretend there is zero cost. You are buying some front end care and cross browser testing. IE6 has its moods. The path through QA needs more scenarios since state can change without a full refresh. But the work is straightforward and the risk is managed if you keep the server endpoints small, log errors, and treat the full refresh path as the safety net.

Plan for two small things from day one. First, measure. Use Google Analytics and simple timing hooks to see how long key actions take in the real world. Second, graceful failure. If script does not load or a proxy strips headers in a corporate network, your forms still submit and your links still link. That wins trust and keeps support quiet.

Your turn: one page, one week

Pick one spot in your site that hurts. A filter on a product list. A comment submit. A small settings form. Keep the markup. Wire an XMLHttpRequest to swap only the part that changes. Add caching headers. Add a tiny spinner inside the widget. Leave the regular link or form in place for script off. Then ship it.

Before and after, note three numbers. Payload size on the wire, time to update as seen by a person, and error rate from your logs. If you beat the reload by a clear margin, keep going. If not, post your setup and numbers in the comments and we will figure it out together.

The web does not need to blink to feel alive. Partial page updates give you the speed of an app without leaning on Flash. Keep it simple. Keep it honest. Make the page breathe only where it needs to, and watch people stick around.

General Software Software Engineering

Post navigation

Previous post
Next post
  • Digital Experience (94)
    • Experience Strategy (19)
    • Experience-Driven Commerce (5)
    • Multi-Channel Experience (9)
    • Personalization & Targeting (21)
    • SEO & Performance (10)
  • Marketing Technologies (92)
    • Analytics & Measurement (14)
    • Content Management Systems (45)
    • Customer Data Platforms (4)
    • Digital Asset Management (8)
    • Marketing Automation (6)
    • MarTech Stack & Strategy (10)
    • Technology Buying & ROI (3)
  • Software Engineering (310)
    • Business of Software (20)
    • Code (30)
    • Development Practices (52)
    • Digital Transformation (21)
    • Engineering Management (25)
    • General Software (82)
    • Productivity & Workflow (30)
    • Software Architecture (85)
    • Technical Implementation (23)
  • 2025 (12)
  • 2024 (8)
  • 2023 (18)
  • 2022 (13)
  • 2021 (3)
  • 2020 (8)
  • 2019 (8)
  • 2018 (23)
  • 2017 (17)
  • 2016 (40)
  • 2015 (37)
  • 2014 (25)
  • 2013 (28)
  • 2012 (24)
  • 2011 (30)
  • 2010 (42)
  • 2009 (25)
  • 2008 (13)
  • 2007 (33)
  • 2006 (26)

Ab Testing Adobe Adobe Analytics Adobe Target AEM agile-methodologies Analytics architecture-patterns CDP CMS coding-practices content-marketing Content Supply Chain Conversion Optimization Core Web Vitals customer-education Customer Data Platform Customer Experience Customer Journey DAM Data Layer Data Unification documentation DXP Individualization java Martech metrics mobile-development Mobile First Multichannel Omnichannel Personalization product-strategy project-management Responsive Design Search Engine Optimization Segmentation seo spring Targeting Tracking user-experience User Journey web-development

©2025 CMO & CTO | WordPress Theme by SuperbThemes