Technical blog

A more subdued subheader

ARender : Sortie de la version 2.0.4

L’équipe R&D d’Arondor annonce la sortie de la quatrième version d’ARender Helium : 2.0.4.

Cette version apporte plusieurs corrections et optimisations liées à l’utilisation massive d’ARender sur les postes clients : beaucoup d’onglets, beaucoup de fenêtres, de gros documents…

Le changelog est disponible dans la release note de la version 2.0.4, et en bref :

Corrections d’Anomalies

Images et cache Internet Explorer

Par défaut, les navigateurs conservent en cache les images chargées. Avec les versions précédentes d’ARender Helium, l’utilisation intensive sous IE 8 de la visionneuse de documents provoquait une saturation du cache d’images. Par conséquent, une fois cette limite dépassée plus aucune image ne pouvait être affichée. Cette anomalie a été corrigée dans cette version en forçant les navigateurs à ne pas conserver en cache ces images.

 

Problème de cache sur les montées de version

Pour rappel, le principe du framework Google Web Toolkit est le suivant : le développeur code en Java et le compilateur GWT transforme ce code Java en JavaScript.

Ce dernier est généré dans un fichier JavaScript nommé arendergwt.nocache.js. A la première exécution de l’application, ce fichier est chargé dans le navigateur et conservé en cache ce qui permet de réduire le temps de chargement.

A chaque nouvelle version d’ARender, un nouveau fichier est généré. Ainsi, le fichier correspondant à la version précédente n’est plus censé être utilisé. Ce qui dans la pratique n’est pas le cas et provoquait des erreurs de compatibilité entre les parties serveur et clientes.

Pour contourner cette anomalie, le fichier JavaScript est désormais suffixé par le numéro de version, par exemple pour la version 2.0.4 : arendergwt.nocache.2.0.4.js.

Ainsi à chaque montée de version, le navigateur est forcé de récupérer le fichier adéquat. Ce contournement est réalisé à la compilation de chaque release grâce à notre chaîne de forge logicielle.

 

Evolutions

API JS

ARender propose maintenant une API JavaScript. Celle-ci est utilisable lors de l’intégration d’ARender dans une application métier à travers une iFrame. L’objectif est de permettre l’intégration forte d’ARender avec les applications dans lesquelles il est intégré. Différentes méthodes (à préfixer par arenderjs_) sont exposées :

Méthodé Description
loadDocument(fileName,callback) Chargement d’un document à l’aide d’une chaîne de caractères
openDocument(documentId) Ouverture d’un document
askChangePage(type,offset,ratio) Changement de page
registerCurrentDocumentChangeEvent(callback) S’abonner à l’évènement de notification de changement de document courant
registerNotifyPageChangeEvent(callback) S’abonner à l’évènement de notification de changement de page
registerNotifyAlterDocumentContentEvent(callback) S’abonner à l’évènement de notification de l’utilisation de l’API AlterDocumentContent

 

GetDocumentLayout.jsp

Cette JSP permet de récupérer la structure d’un document au format JSON.

Dans le cas d’un document simple, les dimensions de chacune des pages, le titre et le type mime sont récupérés (cf. ci-dessous).

{ "pageDimensionsList": [ { "width": 595.276, "height": 841.89, "rotation": 0 }, { "width": 595.276, "height": 841.89, "rotation": 0 } ], "documentId": { "stringValue": "3c25766e-11a3-4049-9bb7-b6611a0b0df2" }, "documentTitle": "Plaquette_aRender", "mimeType": "application/pdf" }

Dans le cas d’un document composite, les informations récupérées correspondent aux IDs de chacun des fils. L’exemple ci-dessous illustre l’appel de la JSP avec un e-mail contenant trois pièces jointes :

{ "children": [ { "documentId": { "stringValue": "83ee7dc4-0700-48d0-8084-79a09a37909d" } }, { "documentId": { "stringValue": "d9afda33-7e36-41e5-a597-a90f2447c467" } }, { "documentId": { "stringValue": "3c25766e-11a3-4049-9bb7-b6611a0b0df2" } }, { "documentId": { "stringValue": "338235b1-42d6-4b10-a593-66fce5a6e780" } } ], "documentId": { "stringValue": "2ba0ec00-5cf8-3d65-a449-33a88b228af2" }, "documentTitle": "f2p8_mail_pfo_2.eml" }