Archives de l’auteur : Bruno

Du javascript dans du javascript

Le javascript est un langage qui peut s’exécuter sur différentes plateforme : en version client (sur nos navigateurs) mais aussi en version serveur.

la librairie Fpdf a été portée pour l’ASP en JScript.

Pour executer du JScript sur un IIS, on utilise la syntaxe suivante : 

<script language="jscript" runat="server"> var a=12; </script>

Si on veut renvoyer au client un script a exécuter sur son client, on est tenté de faire 

<script language="jscript" runat="server"> Response.Write("coucou"); Response.Write("<script language='JavaScript'>var toto=12;</script>"; </script>
Et on récupère une erreur serveur :

Active Server Pages (ASP) erreur 'ASP 0138' Bloc de script imbriqué /exemple.asp, ligne 3 Un bloc de script ne peut pas être placé à l'intérieur d'un autre bloc de script.

Seule solution trouvée sur le net pour contourner ce problème : couper les balises pour que le terme « script » ne soit plus identifié par le parseur.

<script language="jscript" runat="server"> Response.Write("coucou"); Response.Write("<scr"+"ipt language='JavaScript'>var toto=12;</scr"+"ipt>"; </script>

 

Mettre en forme des sources dans un billet de blog

J’ai essayé pas mal de truc pour mettre en forme des sources dans un article, mais le plus simple est quand même de transformer les sources en HTML via un parseur.

Voilà un exemple en démo : http://www.andre-simon.de/doku/highlight/en/highlight_demo.html

Voilà un exemple en de Python mis en forme : 

class Widget: def __init__( self, parent = None ): self.__parent = parent def Handle( self, event ): handler = 'Handle_' + event.name if hasattr( self, handler ): method = getattr( self, handler ) method( event ) elif self.__parent: self.__parent.Handle( event ) elif hasattr( self, 'HandleDefault' ): self.HandleDefault( event );

Faire une pause (sleep) en asp/vbscript

L’ASP est un langage assez ancien. Il ne permet pas de faire des pauses (sleep en anglais).

Quand est ce qu’on a besoin de faire des pauses ?

Quand on veut faire une tache répétitive sans utiliser 100% du CPU du serveur, on fait l’action, puis on attend.

Ou alors, sur des tests de charge, quand on veut simuler des mauvais temps de réponse.

Comment faire alors ?

En déléguant la pause à un autre système. L’idée de ce site est de faire la pause à un serveur SQL : http://classicasp.aspfaq.com/general/how-do-i-make-my-asp-page-pause-or-sleep.html

Set conn = CreateObject("ADODB.Connection") conn.Open "Driver={SQL Server};Server=192.168.0.102\SQLSERVER2005;Database=test;Uid=sa;Pwd=****;" ' indicate a number of seconds, up to 59 sleep = 3 ' make sure timeout doesn't expire! conn.commandTimeout = sleep + 5 ' if you neede more than 59 seconds, you will need to adjust the SQL: sql = "WAITFOR DELAY '00:00:" & right(clng(sleep),2) & "'" 'Response.Write(now & "<p>") conn.Execute sql,,129 ' Response.Write(now & "<p>") conn.close:     Set conn = Nothing

Et ça marche très bien, j’ai pu faire mes tests de ralentissement.