Le 07/03/12 21:06, Kalowycz a écrit :
J'avais un peu de temps en voyant ta réponse, alors j'ai jeté un
coup
d'oeil, désolé pour SAM si je le court-circuite sur ce coup-là. ;-)
Ha ! Ben !
comme je ne comprends rien au PHP, je te le laisse volontiers ;-)
Quant au JS ... si c'est du Mootools qu'il faut absolument faire ...
j'avoue mon incompétence :-(
Faudra que je tente de suivre le cours que j'ai proposé à ,
histoire de comprendre à quoi ça peut bien servir.
Le 07/03/12 21:06, Kalowycz a écrit :
J'avais un peu de temps en voyant ta réponse, alors j'ai jeté un
coup
d'oeil, désolé pour SAM si je le court-circuite sur ce coup-là. ;-)
Ha ! Ben !
comme je ne comprends rien au PHP, je te le laisse volontiers ;-)
Quant au JS ... si c'est du Mootools qu'il faut absolument faire ...
j'avoue mon incompétence :-(
Faudra que je tente de suivre le cours que j'ai proposé à Tr@nquille,
histoire de comprendre à quoi ça peut bien servir.
Le 07/03/12 21:06, Kalowycz a écrit :
J'avais un peu de temps en voyant ta réponse, alors j'ai jeté un
coup
d'oeil, désolé pour SAM si je le court-circuite sur ce coup-là. ;-)
Ha ! Ben !
comme je ne comprends rien au PHP, je te le laisse volontiers ;-)
Quant au JS ... si c'est du Mootools qu'il faut absolument faire ...
j'avoue mon incompétence :-(
Faudra que je tente de suivre le cours que j'ai proposé à ,
histoire de comprendre à quoi ça peut bien servir.
- et/ou, comment faire pour "rafraichir" la page sans la recharger afin
que le dom inclus la réponse...
- et/ou, comment faire pour "rafraichir" la page sans la recharger afin
que le dom inclus la réponse...
- et/ou, comment faire pour "rafraichir" la page sans la recharger afin
que le dom inclus la réponse...
si tu sais comment on fait en ajax pur, ou si tu sais si ça fonctionne
en ajax pur, ç m'intéresse, car dans ce cas je coderai moi-même...
si tu sais comment on fait en ajax pur, ou si tu sais si ça fonctionne
en ajax pur, ç m'intéresse, car dans ce cas je coderai moi-même...
si tu sais comment on fait en ajax pur, ou si tu sais si ça fonctionne
en ajax pur, ç m'intéresse, car dans ce cas je coderai moi-même...
Le respondeXML est la version XML de la chaîne de réponse responseText
Encore une fois, pour exploiter/triturer le DOM du responseText, ce
n'est pas possible directement et avant son insertion dans la page
affichée.
Qques liens
<http://stephane.moriaux.pagesperso-orange.fr/truc/HttpRequest/v_2/?liens>
Le respondeXML est la version XML de la chaîne de réponse responseText
Encore une fois, pour exploiter/triturer le DOM du responseText, ce
n'est pas possible directement et avant son insertion dans la page
affichée.
Qques liens
<http://stephane.moriaux.pagesperso-orange.fr/truc/HttpRequest/v_2/?liens>
Le respondeXML est la version XML de la chaîne de réponse responseText
Encore une fois, pour exploiter/triturer le DOM du responseText, ce
n'est pas possible directement et avant son insertion dans la page
affichée.
Qques liens
<http://stephane.moriaux.pagesperso-orange.fr/truc/HttpRequest/v_2/?liens>
Si je puis me permettre, qqes remarques de principe...
Le 08/03/2012 10:52, SAM a écrit :Le respondeXML est la version XML de la chaîne de réponse responseText
Pas tout à fait, il me semble.
J'aurais plutôt dit que, pour un contenu XML transmis par le serveur, la
propriété "responseText" récupère ce contenu sous forme textuelle, et
non comme un arbre exploitable par le DOM, avec "responseXML".
Encore une fois, pour exploiter/triturer le DOM du responseText, ce
n'est pas possible directement et avant son insertion dans la page
affichée.
Désolé de jouer les contradicteurs de service, à nouveau ici.
Je ne crois pas dire de bêtise en affirmant qu'on peut très bien
récupérer le contenu dans un "documentFragment" et le triturer à foison
*avant* de l'insérer dans le DOM courant.
N'est-il pas, docteur SAM ? ;-)
J'en ai une avec du PHP qui attaque de gros fichiers XML (par ex. la
liste des 36000 communes de chez nous) pour construire une liste de
suggestion à la volée (genre Google suggest en moins prétentieux).
Si ça intéresse, je peux mettre en ligne qqe part, ou zipper sur un lien
temporaire.
Si je puis me permettre, qqes remarques de principe...
Le 08/03/2012 10:52, SAM a écrit :
Le respondeXML est la version XML de la chaîne de réponse responseText
Pas tout à fait, il me semble.
J'aurais plutôt dit que, pour un contenu XML transmis par le serveur, la
propriété "responseText" récupère ce contenu sous forme textuelle, et
non comme un arbre exploitable par le DOM, avec "responseXML".
Encore une fois, pour exploiter/triturer le DOM du responseText, ce
n'est pas possible directement et avant son insertion dans la page
affichée.
Désolé de jouer les contradicteurs de service, à nouveau ici.
Je ne crois pas dire de bêtise en affirmant qu'on peut très bien
récupérer le contenu dans un "documentFragment" et le triturer à foison
*avant* de l'insérer dans le DOM courant.
N'est-il pas, docteur SAM ? ;-)
J'en ai une avec du PHP qui attaque de gros fichiers XML (par ex. la
liste des 36000 communes de chez nous) pour construire une liste de
suggestion à la volée (genre Google suggest en moins prétentieux).
Si ça intéresse, je peux mettre en ligne qqe part, ou zipper sur un lien
temporaire.
Si je puis me permettre, qqes remarques de principe...
Le 08/03/2012 10:52, SAM a écrit :Le respondeXML est la version XML de la chaîne de réponse responseText
Pas tout à fait, il me semble.
J'aurais plutôt dit que, pour un contenu XML transmis par le serveur, la
propriété "responseText" récupère ce contenu sous forme textuelle, et
non comme un arbre exploitable par le DOM, avec "responseXML".
Encore une fois, pour exploiter/triturer le DOM du responseText, ce
n'est pas possible directement et avant son insertion dans la page
affichée.
Désolé de jouer les contradicteurs de service, à nouveau ici.
Je ne crois pas dire de bêtise en affirmant qu'on peut très bien
récupérer le contenu dans un "documentFragment" et le triturer à foison
*avant* de l'insérer dans le DOM courant.
N'est-il pas, docteur SAM ? ;-)
J'en ai une avec du PHP qui attaque de gros fichiers XML (par ex. la
liste des 36000 communes de chez nous) pour construire une liste de
suggestion à la volée (genre Google suggest en moins prétentieux).
Si ça intéresse, je peux mettre en ligne qqe part, ou zipper sur un lien
temporaire.
Ha? alors c'est donc le contraire:
Le responseText est la version HTML de la réponse respondeXML
M'enfin qu'on le prenne d'un bout ou de l'autre ce sont des frères mais
pas des jumeaux.
Encore une fois, pour exploiter/triturer le DOM du responseText, ce
n'est pas possible directement et avant son insertion dans la page
affichée.
[...]
Je sais pô.
On peut innerHTMLer un responseText dans un documentFragment ?
Ce serait le top!
Ceci ne fonctionne pas :
function fr() {
var d = document.createDocumentFragment();
// on simule l'écriture de code html dans de fragment :
d.innerHTML = '';
var n = 5;
while(n--) d.innerHTML += '<p id="p_'+n+'">exemple : '+n+'</p>n';
// essai d'extraire un des nouveaux paragraphes
if(d.getElementById('p_2')) // *Erreur : it's not a function*
alert(document.getElementById('p_2').innerHTML);
else
alert('pas d'arbre DOM dans ce fragment');
document.body.appendChild(d); // erreur corrigée, ne fait rien !
alert(d.innerHTML);
}
mais ceci (méthode à la SAM) fonctionne :
function ok() {
var d = document.createElement('div');
// on simule l'écriture de code html dans de fragment :
d.innerHTML = '';
var n = 5;
while(n--) d.innerHTML += '<p id="p_'+n+'">exemple : '+n+'</p>n';
// insertion/affichage de ce nouveau div
document.body.appendChild(d);
// essai pour bouger un des nouveaux paragraphes
document.body.insertBefore(
d.getElementsByTagName('p')[0],
document.body.firstChild
);
}
J'en ai une avec du PHP qui attaque de gros fichiers XML (par ex. la
liste des 36000 communes de chez nous) pour construire une liste de
suggestion à la volée (genre Google suggest en moins prétentieux).
Si ça intéresse, je peux mettre en ligne qqe part, ou zipper sur un lien
temporaire.
OK, si ça peut me rendre moins bête en php ;-)
Ha? alors c'est donc le contraire:
Le responseText est la version HTML de la réponse respondeXML
M'enfin qu'on le prenne d'un bout ou de l'autre ce sont des frères mais
pas des jumeaux.
Encore une fois, pour exploiter/triturer le DOM du responseText, ce
n'est pas possible directement et avant son insertion dans la page
affichée.
[...]
Je sais pô.
On peut innerHTMLer un responseText dans un documentFragment ?
Ce serait le top!
Ceci ne fonctionne pas :
function fr() {
var d = document.createDocumentFragment();
// on simule l'écriture de code html dans de fragment :
d.innerHTML = '';
var n = 5;
while(n--) d.innerHTML += '<p id="p_'+n+'">exemple : '+n+'</p>n';
// essai d'extraire un des nouveaux paragraphes
if(d.getElementById('p_2')) // *Erreur : it's not a function*
alert(document.getElementById('p_2').innerHTML);
else
alert('pas d'arbre DOM dans ce fragment');
document.body.appendChild(d); // erreur corrigée, ne fait rien !
alert(d.innerHTML);
}
mais ceci (méthode à la SAM) fonctionne :
function ok() {
var d = document.createElement('div');
// on simule l'écriture de code html dans de fragment :
d.innerHTML = '';
var n = 5;
while(n--) d.innerHTML += '<p id="p_'+n+'">exemple : '+n+'</p>n';
// insertion/affichage de ce nouveau div
document.body.appendChild(d);
// essai pour bouger un des nouveaux paragraphes
document.body.insertBefore(
d.getElementsByTagName('p')[0],
document.body.firstChild
);
}
J'en ai une avec du PHP qui attaque de gros fichiers XML (par ex. la
liste des 36000 communes de chez nous) pour construire une liste de
suggestion à la volée (genre Google suggest en moins prétentieux).
Si ça intéresse, je peux mettre en ligne qqe part, ou zipper sur un lien
temporaire.
OK, si ça peut me rendre moins bête en php ;-)
Ha? alors c'est donc le contraire:
Le responseText est la version HTML de la réponse respondeXML
M'enfin qu'on le prenne d'un bout ou de l'autre ce sont des frères mais
pas des jumeaux.
Encore une fois, pour exploiter/triturer le DOM du responseText, ce
n'est pas possible directement et avant son insertion dans la page
affichée.
[...]
Je sais pô.
On peut innerHTMLer un responseText dans un documentFragment ?
Ce serait le top!
Ceci ne fonctionne pas :
function fr() {
var d = document.createDocumentFragment();
// on simule l'écriture de code html dans de fragment :
d.innerHTML = '';
var n = 5;
while(n--) d.innerHTML += '<p id="p_'+n+'">exemple : '+n+'</p>n';
// essai d'extraire un des nouveaux paragraphes
if(d.getElementById('p_2')) // *Erreur : it's not a function*
alert(document.getElementById('p_2').innerHTML);
else
alert('pas d'arbre DOM dans ce fragment');
document.body.appendChild(d); // erreur corrigée, ne fait rien !
alert(d.innerHTML);
}
mais ceci (méthode à la SAM) fonctionne :
function ok() {
var d = document.createElement('div');
// on simule l'écriture de code html dans de fragment :
d.innerHTML = '';
var n = 5;
while(n--) d.innerHTML += '<p id="p_'+n+'">exemple : '+n+'</p>n';
// insertion/affichage de ce nouveau div
document.body.appendChild(d);
// essai pour bouger un des nouveaux paragraphes
document.body.insertBefore(
d.getElementsByTagName('p')[0],
document.body.firstChild
);
}
J'en ai une avec du PHP qui attaque de gros fichiers XML (par ex. la
liste des 36000 communes de chez nous) pour construire une liste de
suggestion à la volée (genre Google suggest en moins prétentieux).
Si ça intéresse, je peux mettre en ligne qqe part, ou zipper sur un lien
temporaire.
OK, si ça peut me rendre moins bête en php ;-)
Le 08/03/2012 14:21, SAM a écrit :mais ceci (méthode à la SAM) fonctionne :
function ok() {
var d = document.createElement('div');
// on simule l'écriture de code html dans de fragment :
d.innerHTML = '';
var n = 5;
while(n--) d.innerHTML += '<p id="p_'+n+'">exemple : '+n+'</p>n';
// insertion/affichage de ce nouveau div
document.body.appendChild(d);
// essai pour bouger un des nouveaux paragraphes
document.body.insertBefore(
d.getElementsByTagName('p')[0],
document.body.firstChild
);
}
Voilà, et c'est pourquoi tu ne peux rien traiter avant d'avoir greffé.
Ce n'est pas toujours un problème,
mais il y a des cas critiques où c'est galère.
Par exemple si tu comptes récupérer un gros bousin, le greffer, et faire
le ménage en supprimant les 9/10e du machin d'origine.
Là c'est grave plus performant de stocker dans un fragment pour faire le
tripatouillage, promis juré !
Le 08/03/2012 14:21, SAM a écrit :
mais ceci (méthode à la SAM) fonctionne :
function ok() {
var d = document.createElement('div');
// on simule l'écriture de code html dans de fragment :
d.innerHTML = '';
var n = 5;
while(n--) d.innerHTML += '<p id="p_'+n+'">exemple : '+n+'</p>n';
// insertion/affichage de ce nouveau div
document.body.appendChild(d);
// essai pour bouger un des nouveaux paragraphes
document.body.insertBefore(
d.getElementsByTagName('p')[0],
document.body.firstChild
);
}
Voilà, et c'est pourquoi tu ne peux rien traiter avant d'avoir greffé.
Ce n'est pas toujours un problème,
mais il y a des cas critiques où c'est galère.
Par exemple si tu comptes récupérer un gros bousin, le greffer, et faire
le ménage en supprimant les 9/10e du machin d'origine.
Là c'est grave plus performant de stocker dans un fragment pour faire le
tripatouillage, promis juré !
Le 08/03/2012 14:21, SAM a écrit :mais ceci (méthode à la SAM) fonctionne :
function ok() {
var d = document.createElement('div');
// on simule l'écriture de code html dans de fragment :
d.innerHTML = '';
var n = 5;
while(n--) d.innerHTML += '<p id="p_'+n+'">exemple : '+n+'</p>n';
// insertion/affichage de ce nouveau div
document.body.appendChild(d);
// essai pour bouger un des nouveaux paragraphes
document.body.insertBefore(
d.getElementsByTagName('p')[0],
document.body.firstChild
);
}
Voilà, et c'est pourquoi tu ne peux rien traiter avant d'avoir greffé.
Ce n'est pas toujours un problème,
mais il y a des cas critiques où c'est galère.
Par exemple si tu comptes récupérer un gros bousin, le greffer, et faire
le ménage en supprimant les 9/10e du machin d'origine.
Là c'est grave plus performant de stocker dans un fragment pour faire le
tripatouillage, promis juré !
Le 08/03/12 17:11, Kalowycz a écrit :Là c'est grave plus performant de stocker dans un fragment pour faire le
tripatouillage, promis juré !
intellectuellement, ça devrait
pratiquement, ça reste à voir
Bon ... le fichier(*) des patelins de 6Mo (gZippé ?) le plus long sera
de le véhiculer, après ... la méthode de traitement sera indolore quelle
qu'elle soit, non ?
(*) il y aura sans doute avantage à le j-Zonner au lieu de le X-mèler
Le 08/03/12 17:11, Kalowycz a écrit :
Là c'est grave plus performant de stocker dans un fragment pour faire le
tripatouillage, promis juré !
intellectuellement, ça devrait
pratiquement, ça reste à voir
Bon ... le fichier(*) des patelins de 6Mo (gZippé ?) le plus long sera
de le véhiculer, après ... la méthode de traitement sera indolore quelle
qu'elle soit, non ?
(*) il y aura sans doute avantage à le j-Zonner au lieu de le X-mèler
Le 08/03/12 17:11, Kalowycz a écrit :Là c'est grave plus performant de stocker dans un fragment pour faire le
tripatouillage, promis juré !
intellectuellement, ça devrait
pratiquement, ça reste à voir
Bon ... le fichier(*) des patelins de 6Mo (gZippé ?) le plus long sera
de le véhiculer, après ... la méthode de traitement sera indolore quelle
qu'elle soit, non ?
(*) il y aura sans doute avantage à le j-Zonner au lieu de le X-mèler
Le 07/03/2012 21:36, a écrit :par curiosité, j'aimerais quand-même savoir pourquoi en js ça n'y
va pas:
- comment faire pour accéder à la response et la modifier avant de
l'afficher
Pas terrible, la doc de Mootools !
Elle précise que "responseTree" serait de type "element", alors qu'en
fait c'est une "nodeList".
De toute façon, ce n'est pas le type de réponse le plus pratique,
comparé à un "documentFragment".
Bref, du coup il faut deviner la place du bout de contenu rechercher
dans cet "arbre" (???).
J'ai fait qqes essais et remarqué que la méthode "adopt()" a l'air de
vider l'arbre, de sorte qu'il faut faire un traitement à la fois
avant et après si l'on veut changer l'ordre de présentation.
Voici un exemple pris dans le contexte de "onSuccess" :
<code>
$('messages').empty().removeClass('ajax-loading');
var enregistrement = responseTree.item(7);
$('affiche_logs').adopt(responseTree);
var aine = $('affiche_logs').firstChild;
$('affiche_logs').insertBefore(enregistrement, aine);
</code>
Ça a pour effet de replacer le contenu du DIV de classe
"enregistrement" au début de son parent, soit le DIV identifié
"affiche_logs".
Je crois que tu cherchais qqe chose dans ce genre, non ?
Le 07/03/2012 21:36, Tr@nquille a écrit :
par curiosité, j'aimerais quand-même savoir pourquoi en js ça n'y
va pas:
- comment faire pour accéder à la response et la modifier avant de
l'afficher
Pas terrible, la doc de Mootools !
Elle précise que "responseTree" serait de type "element", alors qu'en
fait c'est une "nodeList".
De toute façon, ce n'est pas le type de réponse le plus pratique,
comparé à un "documentFragment".
Bref, du coup il faut deviner la place du bout de contenu rechercher
dans cet "arbre" (???).
J'ai fait qqes essais et remarqué que la méthode "adopt()" a l'air de
vider l'arbre, de sorte qu'il faut faire un traitement à la fois
avant et après si l'on veut changer l'ordre de présentation.
Voici un exemple pris dans le contexte de "onSuccess" :
<code>
$('messages').empty().removeClass('ajax-loading');
var enregistrement = responseTree.item(7);
$('affiche_logs').adopt(responseTree);
var aine = $('affiche_logs').firstChild;
$('affiche_logs').insertBefore(enregistrement, aine);
</code>
Ça a pour effet de replacer le contenu du DIV de classe
"enregistrement" au début de son parent, soit le DIV identifié
"affiche_logs".
Je crois que tu cherchais qqe chose dans ce genre, non ?
Le 07/03/2012 21:36, a écrit :par curiosité, j'aimerais quand-même savoir pourquoi en js ça n'y
va pas:
- comment faire pour accéder à la response et la modifier avant de
l'afficher
Pas terrible, la doc de Mootools !
Elle précise que "responseTree" serait de type "element", alors qu'en
fait c'est une "nodeList".
De toute façon, ce n'est pas le type de réponse le plus pratique,
comparé à un "documentFragment".
Bref, du coup il faut deviner la place du bout de contenu rechercher
dans cet "arbre" (???).
J'ai fait qqes essais et remarqué que la méthode "adopt()" a l'air de
vider l'arbre, de sorte qu'il faut faire un traitement à la fois
avant et après si l'on veut changer l'ordre de présentation.
Voici un exemple pris dans le contexte de "onSuccess" :
<code>
$('messages').empty().removeClass('ajax-loading');
var enregistrement = responseTree.item(7);
$('affiche_logs').adopt(responseTree);
var aine = $('affiche_logs').firstChild;
$('affiche_logs').insertBefore(enregistrement, aine);
</code>
Ça a pour effet de replacer le contenu du DIV de classe
"enregistrement" au début de son parent, soit le DIV identifié
"affiche_logs".
Je crois que tu cherchais qqe chose dans ce genre, non ?
Le 08/03/12 07:10, a écrit :si tu sais comment on fait en ajax pur, ou si tu sais si ça
fonctionne
en ajax pur, ç m'intéresse, car dans ce cas je coderai moi-même...
c a d que pour ajactionner qques bouts de html ... le JS nécessaire
et suffisant pèse bien moins lourd qu'une bibli, et au moins on
comprend plus facilement ce qu'on traficote
Une démo personnelle basique :
<http://stephane.moriaux.pagesperso-orange.fr/truc/HttpRequest/v_1/>
Sont insérés dans la page affichée des fichiers contenant du code
html et préparés d'avance - pas de PHP mais un chouïa de SSI.
Le SSI est là pour que ça fonctionne aussi sans JavaScript.
En méthode Ajax, ici n'est pas exploité le responseXML, seulement le
responseText
Le respondeXML est la version XML de la chaîne de réponse
responseText
Encore une fois, pour exploiter/triturer le DOM du responseText, ce
n'est pas possible directement et avant son insertion dans la page
affichée.
Il faut l'insérer dans le code html de la page
$('lieu').innerHTML = http_request.responseText;
et ensuite on peut accéder au DOM de ce div 'lieu' pour en déplacer
un élément ailleurs sur la page par exemple.
Qques liens
<http://stephane.moriaux.pagesperso-orange.fr/truc/HttpRequest/v_2/?liens>
Le 08/03/12 07:10, Tr@nquille a écrit :
si tu sais comment on fait en ajax pur, ou si tu sais si ça
fonctionne
en ajax pur, ç m'intéresse, car dans ce cas je coderai moi-même...
c a d que pour ajactionner qques bouts de html ... le JS nécessaire
et suffisant pèse bien moins lourd qu'une bibli, et au moins on
comprend plus facilement ce qu'on traficote
Une démo personnelle basique :
<http://stephane.moriaux.pagesperso-orange.fr/truc/HttpRequest/v_1/>
Sont insérés dans la page affichée des fichiers contenant du code
html et préparés d'avance - pas de PHP mais un chouïa de SSI.
Le SSI est là pour que ça fonctionne aussi sans JavaScript.
En méthode Ajax, ici n'est pas exploité le responseXML, seulement le
responseText
Le respondeXML est la version XML de la chaîne de réponse
responseText
Encore une fois, pour exploiter/triturer le DOM du responseText, ce
n'est pas possible directement et avant son insertion dans la page
affichée.
Il faut l'insérer dans le code html de la page
$('lieu').innerHTML = http_request.responseText;
et ensuite on peut accéder au DOM de ce div 'lieu' pour en déplacer
un élément ailleurs sur la page par exemple.
Qques liens
<http://stephane.moriaux.pagesperso-orange.fr/truc/HttpRequest/v_2/?liens>
Le 08/03/12 07:10, a écrit :si tu sais comment on fait en ajax pur, ou si tu sais si ça
fonctionne
en ajax pur, ç m'intéresse, car dans ce cas je coderai moi-même...
c a d que pour ajactionner qques bouts de html ... le JS nécessaire
et suffisant pèse bien moins lourd qu'une bibli, et au moins on
comprend plus facilement ce qu'on traficote
Une démo personnelle basique :
<http://stephane.moriaux.pagesperso-orange.fr/truc/HttpRequest/v_1/>
Sont insérés dans la page affichée des fichiers contenant du code
html et préparés d'avance - pas de PHP mais un chouïa de SSI.
Le SSI est là pour que ça fonctionne aussi sans JavaScript.
En méthode Ajax, ici n'est pas exploité le responseXML, seulement le
responseText
Le respondeXML est la version XML de la chaîne de réponse
responseText
Encore une fois, pour exploiter/triturer le DOM du responseText, ce
n'est pas possible directement et avant son insertion dans la page
affichée.
Il faut l'insérer dans le code html de la page
$('lieu').innerHTML = http_request.responseText;
et ensuite on peut accéder au DOM de ce div 'lieu' pour en déplacer
un élément ailleurs sur la page par exemple.
Qques liens
<http://stephane.moriaux.pagesperso-orange.fr/truc/HttpRequest/v_2/?liens>