Je pense ne pas avoir été clair et precis:
voici le debut de ma feuille xslt
Code :
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output method="html" version="1.0" encoding="ISO-8859-1" indent="yes"/>
- <xsl:variable name='sessionID' select="/document/sessionid"/>
- <xsl:variable name='roleTarif' select="/document/roleTarif"/>
- <xsl:variable name='codeDevise' select="/document/codeDevise"/>
- <xsl:variable name='typeTarif' select="/document/typeTarif"/>
- <xsl:variable name='langue' select="/document/Langue"/>
- <xsl:variable name='detail' select="/document/detail"/>
- <xsl:variable name='reference' select="/document/reference"/>
-
- <xsl:variable name='codeFamille' select="/document/ARTCNA/@codeFamille"/>
- <xsl:variable name='codeRLP' select="/document/ARTCNA/ARTCFA/@codeRLP"/>
- <xsl:variable name='codeLP' select="/document/ARTCNA/ARTCFA/ARTCLP/@codeLP"/>
- <xsl:variable name='codeGenre' select="/document/ARTCNA/ARTCFA/ARTCLP/ARTCMO/@codeGenre"/>
- <xsl:template match="document">
- <html>
- <head>
- <META http-equiv="Pragma" content="no-cache">
- </META>
-
- <LINK REL="stylesheet" TYPE="text/css" HREF= "/IntranetJLC/css/classification.css">
- </LINK>
-
- <script src="/IntranetJLC/js/classificationHTML.js" language="JavaScript"></script>
|
On peux remarquer que je fais appel a un ficier de fonction javascript "classificationHTML.js"
dont voici le code
Code :
- [#7f0055 size=2]
- var [/#7f0055 size=2][size=1]IB=[/size][#7f0055 size=2]new [/#7f0055 size=2][size=1]Object;[/size][#7f0055 size=2]
- var [/#7f0055 size=2][size=1]posX=0;[/size][#7f0055 size=2]
- var [/#7f0055 size=2][size=1]posY=0;[/size][#7f0055 size=2]
- var [/#7f0055 size=2][size=1]xOffset=10;[/size][#7f0055 size=2]
- var [/#7f0055 size=2][size=1]yOffset=10;[/size][#7f0055 size=2]
- function [/#7f0055 size=2][size=1]LoadBulle(refArtQ, path,x)[/size][#7f0055 size=2]{
- var [/#7f0055 size=2][size=1]color = [/size][#8e00ff size=2]"#DDDDDD"[/#8e00ff size=2][size=1];
- x.bgColor= color;
- [/size][#7f0055 size=2]var [/#7f0055 size=2][size=1]monImage = [/size][#7f0055 size=2]new [/#7f0055 size=2][size=1]Image();
- monImage.src = path+[/size][#8e00ff size=2]'/'[/#8e00ff size=2][size=1]+refArtQ+[/size][#8e00ff size=2]'.jpg'[/#8e00ff size=2][size=1];
- [/size][#3f5fbf size=2]// Il y a une image
- [/#3f5fbf size=2][size=1]AffBulle([/size][#8e00ff size=2]'<CENTER><img src=\''[/#8e00ff size=2][size=1]+monImage.src+[/size][#8e00ff size=2]'\' onerror="LoadBulleNO(\''[/#8e00ff size=2][size=1]+refArtQ+[/size][#8e00ff size=2]'\', \''[/#8e00ff size=2][size=1]+path+[/size][#8e00ff size=2]'\')" ></CENTER>'[/#8e00ff size=2][size=1]);[/size][#7f0055 size=2]
- }[/#7f0055 size=2][size=1][/size][#7f0055 size=2]
- function [/#7f0055 size=2][size=1]LoadBulleNO(refArtQ, path)[/size][#7f0055 size=2]{
- var [/#7f0055 size=2][size=1]monImage = [/size][#7f0055 size=2]new [/#7f0055 size=2][size=1]Image();
- monImage.src = path+[/size][#8e00ff size=2]'/NO_'[/#8e00ff size=2][size=1]+refArtQ+[/size][#8e00ff size=2]'.jpg'[/#8e00ff size=2][size=1];
- [/size][#3f5fbf size=2]// Il y a une image Non Officielle
- [/#3f5fbf size=2][size=1]AffBulle([/size][#8e00ff size=2]'Unofficial image ... <br>'[/#8e00ff size=2][size=1]+[/size][#8e00ff size=2]'<CENTER><img src=\''[/#8e00ff size=2][size=1]+monImage.src+[/size][#8e00ff size=2]'\' onerror="LoadBulleErr()" ></CENTER>'[/#8e00ff size=2][size=1]);[/size][#7f0055 size=2]
- }[/#7f0055 size=2][size=1][/size][#7f0055 size=2]
- function [/#7f0055 size=2][size=1]LoadBulleErr()[/size][#7f0055 size=2]{
- [/#7f0055 size=2][#3f5fbf size=2]// Il n'y a pas d'image
- [/#3f5fbf size=2][size=1]AffBulle([/size][#8e00ff size=2]'Sorry, this picture is unavailable'[/#8e00ff size=2][size=1]);[/size][#7f0055 size=2]
- }[/#7f0055 size=2][size=1]
- [/size][#7f0055 size=2]
- function [/#7f0055 size=2][size=1]AffBulle(texte) [/size][#7f0055 size=2]{
- [/#7f0055 size=2][size=1]contenu=[/size][#8e00ff size=2]"<TABLE border=0 cellspacing=0 cellpadding="[/#8e00ff size=2][size=1]+IB.NbPixel+[/size][#8e00ff size=2]"><TR bgcolor='"[/#8e00ff size=2][size=1]+IB.ColContour+[/size][#8e00ff size=2]"'><TD><TABLE border=0 cellpadding=2 cellspacing=0 bgcolor='"[/#8e00ff size=2][size=1]+IB.ColFond+[/size][#8e00ff size=2]"'><TR><TD><FONT size='-1' face='arial' color='"[/#8e00ff size=2][size=1]+IB.ColTexte+[/size][#8e00ff size=2]"'>"[/#8e00ff size=2][size=1]+texte+[/size][#8e00ff size=2]"</FONT></TD></TR></TABLE></TD></TR></TABLE> "[/#8e00ff size=2][size=1];
- [/size][#7f0055 size=2]var [/#7f0055 size=2][size=1]finalPosX=posX-xOffset;
- [/size][#7f0055 size=2]if [/#7f0055 size=2][size=1](finalPosX<0) finalPosX=0;
- [/size][#7f0055 size=2]if [/#7f0055 size=2][size=1](document.getElementById([/size][#8e00ff size=2]"bulle"[/#8e00ff size=2][size=1])!=[/size][#7f0055 size=2]null[/#7f0055 size=2][size=1])[/size][#7f0055 size=2]{
- [/#7f0055 size=2][size=1]document.getElementById([/size][#8e00ff size=2]"bulle"[/#8e00ff size=2][size=1]).innerHTML=contenu;
- document.getElementById([/size][#8e00ff size=2]"bulle"[/#8e00ff size=2][size=1]).style.top=posY+yOffset;
- document.getElementById([/size][#8e00ff size=2]"bulle"[/#8e00ff size=2][size=1]).style.left=finalPosX;
- document.getElementById([/size][#8e00ff size=2]"bulle"[/#8e00ff size=2][size=1]).style.visibility=[/size][#8e00ff size=2]"visible"[/#8e00ff size=2][size=1];
- [/size][#7f0055 size=2]}
- }[/#7f0055 size=2][size=1][/size][#7f0055 size=2]
- function [/#7f0055 size=2][size=1]HideBulle(x) [/size][#7f0055 size=2]{
- var [/#7f0055 size=2][size=1]color = [/size][#8e00ff size=2]"#FFFFFF"[/#8e00ff size=2][size=1];
- x.bgColor= color;
- document.getElementById([/size][#8e00ff size=2]"bulle"[/#8e00ff size=2][size=1]).style.visibility=[/size][#8e00ff size=2]"hidden"[/#8e00ff size=2][size=1];
- [/size][#7f0055 size=2]
- }[/#7f0055 size=2][size=1][/size][#7f0055 size=2]
- function [/#7f0055 size=2][size=1]InitBulle(ColTexte,ColFond,ColContour,NbPixel) [/size][#7f0055 size=2]{
- [/#7f0055 size=2][size=1]IB.ColTexte=ColTexte;IB.ColFond=ColFond;IB.ColContour=ColContour;IB.NbPixel=NbPixel;
- document.write([/size][#8e00ff size=2]"<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>"[/#8e00ff size=2][size=1]);
- document.onmousemove=getMousePos;
- [/size][#7f0055 size=2]
- }[/#7f0055 size=2][size=1][/size][#7f0055 size=2]
- function [/#7f0055 size=2][size=1]getMousePos(e) [/size][#7f0055 size=2]{
- if [/#7f0055 size=2][size=1](document.all) [/size][#7f0055 size=2]{
- [/#7f0055 size=2][size=1]posX=event.x+document.body.scrollLeft; [/size][#3f5fbf size=2]//modifs CL 09/2001 - IE : regrouper l'?v?nement
- [/#3f5fbf size=2][size=1]posY=event.y+document.body.scrollTop;
- [/size][#7f0055 size=2]}
- else {
- [/#7f0055 size=2][size=1]posX=e.pageX; [/size][#3f5fbf size=2]//modifs CL 09/2001 - NS6 : celui-ci ne supporte pas e.x et e.y
- [/#3f5fbf size=2][size=1]posY=e.pageY;
- [/size][#7f0055 size=2]}
- }[/#7f0055 size=2]
|
Voici la partie de ma feuille xsl qui fait appel aux fonctions
Code :
- <xsl:template match="DSLNG">
- <xsl:param name="refQ" select="../REFQX"/>
- <xsl:param name="chemin_image" select="../chemin_image"/>
-
- <td class="artlib" width='330' NOWRAP='1'
- onmouseover="LoadBulle('{$refQ}','{$chemin_image}',this)"
- onmouseout="HideBulle(this)" >
- <xsl:apply-templates/>
- </td>
- </xsl:template>
|
On peut remarquer que j'ai reduit les parametres des fonction javascripts
le template "DSLNG" est appele 150 fois environ
Mon probleme est que les deux lignes :
onmouseover="LoadBulle('{$refQ}','{$chemin_image}',this)"
onmouseout="HideBulle(this)" >
me font perdre 3 fois plus de temps a l'affichage.
je ne comprends pas pourquoi.
le meme code sans transformation XML->HTML avec xslt est rapide
je vous remercie de vos réponses.