Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Better by Proxy at Smashing Conf NY

Better by Proxy at Smashing Conf NY

Proxy browsers get a bad rep. “They’re antiques.” “They behave in weird ways.” “They’re crappy browsers.” But a deeper understanding of what they accomplish, and what they do behind the scenes, reveals that they’re actually quite ingenious. And far from becoming outdated, they’re uniquely positioned to bring the web to the next wave of people and devices around the world.

We’ll look some of the more popular proxy browsers today, what they do, how to ensure your site works well on them, and why that’s so important.

Presented at Smashing Conf, NY in New York, NY on June 16, 2015.

Tim Kadlec

June 16, 2015
Tweet

More Decks by Tim Kadlec

Other Decks in Technology

Transcript

  1. 0 3000 6000 9000 12000 Kenya Pakistan Iran India Azerbaijan

    Armenia China Belarus Kazakhstan Bosnia Georgia Macedonia US
  2. 0 3000 6000 9000 12000 Kenya Pakistan Iran India Azerbaijan

    Armenia China Belarus Kazakhstan Bosnia Georgia Macedonia US 10x
  3. “…as bandwidth grows, and as processing power grows, and as

    browsers get better we just keep filling everything up. Jeff Veen Path to Performance Podcast
  4. 23%

  5. POTENTIAL ISSUE #3:
 Image transcoding or compression may result
 in

    blurry images SOLUTION:
 Use Cache-Control: no-transform
  6. contextmenu dblclick error keydown keypress keyup mousemove mouseenter mouseleave mouseout

    mousewheel resize scroll touchcancel touchend touchmove touchstart
  7. Limit data consumed and limit impact on device while providing

    a nearly equal experience to a typical browser.
  8. contextmenu dblclick error keydown keypress keyup mousemove mouseenter mouseleave mouseout

    mousewheel resize scroll touchcancel touchend touchmove touchstart
  9. if('querySelector' in document && 'localStorage' in window && 'addEventListener' in

    window) { // bootstrap the javascript application } Sure, why not.
  10. var hasStorage = (function() { try { localStorage.setItem(mod, mod); localStorage.removeItem(mod);

    return true; } catch (exception) { return false; } }()); if( 'querySelector' in document && hasStorage && 'addEventListener' in window ){ // bootstrap the javascript application }
  11. var hasStorage = (function() { try { localStorage.setItem("test", "mod" );

    localStorage.removeItem("test"); return true; } catch (exception) { if (exception && exception.name=="QuotaExceededError" && localStorage.length == 0) { return true; } else { return false; } return false; } }()); if( 'querySelector' in document && hasStorage && 'addEventListener' in window ){ //cuts the mustard }
  12. var hasStorage = (function() { try { localStorage.setItem("test", "mod" );

    localStorage.removeItem("test"); return true; } catch (exception) { if (exception && exception.name=="QuotaExceededError" && localStorage.length == 0) { return true; } else { return false; } return false; } }()); if( 'querySelector' in document && hasStorage && 'addEventListener' in window ){ //cuts the mustard }
  13. The journey begins by letting go of control, and becoming

    flexible. “ John Allsopp Dao of Web Design