Skip to content
Extraits de code Groupes Projets
Valider 2a5e233d rédigé par arno@rezo.net's avatar arno@rezo.net
Parcourir les fichiers

Version 1.3: ajoute la méthode {ajaxload=esi}, qui transforme l’inclusion en...

Version 1.3: ajoute la méthode {ajaxload=esi}, qui transforme l’inclusion en inclusion ESI de Varnish.

Quand ESI est bien activé dans Varnish, il n’y a donc plus du tout de chargement Ajax.
En revanche, si ESI n’est pas activé dans Varnish, ça redevient un ajaxload classique – attention, c’est un fall-back: le refresh vers no_ajax de la page est alors désactivé, parce que le fonctionnement normal de cette méthode, c’est tout de même l’inclusion ESI.
parent f487b06c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -76,6 +76,11 @@ function recuperer_fond_ajax() { ...@@ -76,6 +76,11 @@ function recuperer_fond_ajax() {
$ajax = urlencode($ajax); $ajax = urlencode($ajax);
$ret = "spip.php?var_ajax=recuperer&var_ajax_env=$ajax"; $ret = "spip.php?var_ajax=recuperer&var_ajax_env=$ajax";
} else if ($methode == "esi") {
$ajax = urlencode($ajax);
$ret = "<!--esi <esi:include src='spip.php?var_ajax=recuperer&amp;var_ajax_env=$ajax' />-->";
$ret .= "<esi:remove><div class='includestatic'><a href=\"#\" rel=\"spip.php?var_ajax=recuperer&amp;var_ajax_env=$ajax\">$searching</a></div></esi:remove>";
} else if ($methode == "url_html") { } else if ($methode == "url_html") {
$fichier = sous_repertoire(_DIR_VAR, 'cache-ajaxload').$cle.".html"; $fichier = sous_repertoire(_DIR_VAR, 'cache-ajaxload').$cle.".html";
...@@ -152,7 +157,11 @@ function remettre_fond_ajax_static($matches) { ...@@ -152,7 +157,11 @@ function remettre_fond_ajax_static($matches) {
} }
function INCLUREAJAXLOAD_affichemeta($page) { function INCLUREAJAXLOAD_affichemeta($page) {
if (strpos($page, "includeajax") > 0 || strpos($page, "includestatic") > 0) {
if (
(strpos($page, "includeajax") > 0 || strpos($page, "includestatic") > 0)
&& !strpos($page, "<esi:remove><div class='includestatic'>") > 0
) {
$javascript = '<?php if ($_COOKIE["no_js"] != "no_js" && !_IS_BOT && _request("no_js") != "oui") { ?> $javascript = '<?php if ($_COOKIE["no_js"] != "no_js" && !_IS_BOT && _request("no_js") != "oui") { ?>
<script type="text/javascript"><!-- <script type="text/javascript"><!--
......
...@@ -3,12 +3,16 @@ ...@@ -3,12 +3,16 @@
<slogan>Ajoute une option <code>{ajaxload}</code> &#224; la balise <code>#INCLURE</code></slogan> <slogan>Ajoute une option <code>{ajaxload}</code> &#224; la balise <code>#INCLURE</code></slogan>
<auteur>Fil, ARNO*</auteur> <auteur>Fil, ARNO*</auteur>
<licence>&#169; 2009 GNU/GPL</licence> <licence>&#169; 2009 GNU/GPL</licence>
<version>1.2.0</version> <version>1.3.0</version>
<etat>stable</etat> <etat>stable</etat>
<description> <description>
Ce plugin ajoute une option <code>{ajaxload}</code> &#224; la balise <code>#INCLURE</code>. La noisette n'est alors pas incluse, mais charg&#233;e dynamiquement en Ajax au chargement de la page. Ce plugin ajoute une option <code>{ajaxload}</code> &#224; la balise <code>#INCLURE</code>. La noisette n'est alors pas incluse, mais charg&#233;e dynamiquement en Ajax au chargement de la page.
Autre m&#233;thode: <code>{ajaxload=html}</code> fabrique une noisette statique (en HTML non dynamique) dans <code>/local/cache-ajaxload</code>, son appel se faisant ainsi hors SPIP. Le cache n'est donc plus g&#233;r&#233; par le <code>#CACHE</code> de SPIP; il est par d&#233;faut de 2 heures, on peut le forcer en ajoutant le crit&#232;re <code>{ttl_ajaxload=60*60*24}</code>. Autre m&#233;thode: <code>{ajaxload=html}</code> fabrique une noisette statique (en HTML non dynamique) dans <code>/local/cache-ajaxload</code>, son appel se faisant ainsi hors SPIP. Le cache n'est donc plus g&#233;r&#233; par le <code>#CACHE</code> de SPIP; il est par d&#233;faut de 2 heures, on peut le forcer en ajoutant le crit&#232;re <code>{ttl_ajaxload=60*60*24}</code>.
Permet de plus d&rsquo;utiliser l&rsquo;<a href="https://www.varnish-cache.org/docs/3.0/tutorial/esi.html">inclusion ESI de Varnish</a>, en indiquant <code>{ajaxload=esi}</code>.
Pour g&#233;rer les chargements Ajax &#171;&#224; la main&#187;, on peut r&#233;cup&#233;rer l'URL des noisettes en modifiant le crit&#232;re: Pour g&#233;rer les chargements Ajax &#171;&#224; la main&#187;, on peut r&#233;cup&#233;rer l'URL des noisettes en modifiant le crit&#232;re:
-- <code>{ajaxload=url}</code> retourne l'URL de la noisette dynamique; -- <code>{ajaxload=url}</code> retourne l'URL de la noisette dynamique;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter