Beim Entwurf von CSS-Tricks, während ich dies aufzeichne, wollte ich unter anderem ein Widget „Front-End-Design- und Entwicklungsjobs“ hinzufügen, das vom CodePen Job Board bereitgestellt wird. Diese Jobs sind als JSON-Daten verfügbar.
Könnten wir nicht einfach eine Ajax-Anfrage dafür stellen und sie verwenden? Vielleicht ein bisschen JavaScript Templating? Sicher könnten wir. Ajax-Anfragen sind jedoch asynchron. Ich stelle mir bei jedem Laden einer Seite einen kleinen Spinner vor, der darauf wartet, dass die Daten eintreffen, und dann die Jobs ausfülle. Nicht ganz die UX, die ich will.
Ich möchte dies mit PHP tun, damit die Jobs als Teil des Dokuments vorhanden sind, wenn es vom Server herunterkommt. PHP (und WordPress) können genau wie eine Ajax-Anfrage Anfragen an Inhalte von Drittanbietern stellen. In der Tat ist es sogar noch einfacher, da es keine domänenübergreifenden Einschränkungen und JSONP-Typ-Inhalte gibt.
Es ist jedoch ein wenig riskant, sich auf eine Anfrage eines Drittanbieters zu verlassen, damit der Server überhaupt antwortet. Ich möchte es nicht für jedes Laden von Seiten auf CSS-Tricks benötigen. Glücklicherweise ist WordPress Transients dafür gedacht. In diesem Video verwenden wir genau das. Wir holen die Daten von Zeit zu Zeit ab und zwischenspeichern sie dann lokal, sodass die meisten Anfragen superschnelle lokale Daten sind.