WPO-trick: Utnyttja flush() för att en snabbare sidladdning

När en användare har begärt en sida så kan det ta allt från 200ms till 500ms innan backend hunnit snickra ihop HTML-sidan. Under tiden som backend snickrar så sitter webbläsaren passivt och bara väntar på att data skall anlända vilket upplevs som väntetid för användaren.

För att simulera en snabbare laddningstid och ge användaren en indikation på att sidan faktiskt laddas så kan man i PHP använda sig av en funktion som heter flush(). Funktionen tillåter dig att delvis ladda in färdiga delar av HTML-sidan till läsaren så att läsaren kan börja hämta information medan backend fortfarande snickrar ihop den resterande sidan. Störst skillnad gör detta på sidor med antingen en upptagen backend eller väldigt lätt frontend.

Vart skall man då sätta in flush()?
Ett bra ställe att sätta in funktionen på är precis efter <HEAD> då den delen oftast är enklare att producera. Dessutom så tillåts webbläsaren även att hämta eventuella CSS:er och Javascript samtidigt som backend fortsätter med sin process.

Så här kan det se ut:

      ... <!-- css, js -->
    </head>
    <?php flush(); ?>
    <body>
      ... <!-- content -->
Related Posts Plugin for WordPress, Blogger...
  • Foo

    Känns lite tveksamt att ta cred för något som nästintill är direktöversatt från http://developer.yahoo.com/performance/rules.html#flush . Du borde åtminstone länka till källan.

  • Adam Hassan

    Lika tveksamt som att lämna en anonym kommentar kanske?

    Men du får sluta posta en massa källor för då kommer ja inte ha nått att skriva om längre.