Traditionnellement, nous avons toujours utilisé xml dans la réponse qui est analysée par une méthode Javascript pour exécuter des processus de post-traitement. Je suis venu avec une nouvelle implémentation plus simple qui utilise un ensemble d'entrée caché par un requestAttribute et exécuté dans un callback ajax.Question sur l'exécution des post-processus javascript dans l'application Java
JSP:
<%
String jsPostProcess = (String)request.getAttribute("jsPostProcess");
if (jsPostProcess!=null && jsPostProcess.trim().length()>0){
%>
<input type="hidden" id="jsPostProcess" name="jsPostProcess"
value="<%= jsPostProcess %> "/>
<% } %>
AJAX callback:
var callback = {
success: function(response) {
var div = $(divId);
if (div){
div.innerHTML = response.responseText;
}
var jsPostProcess = $('jsPostProcess');
if (jsPostProcess)
eval(jsPostProcess.value);
},
failure: function(response) {
alert('Something went wrong!');
}
}
CODE Servlet:
request.setAttribute("jsPostProcess", jsPostProcess);
Il fonctionne à merveille, et il est tellement plus simple pour ajouter js processus post pratiquement n'importe quel appel, peu importe la simplicité ou la complexité de la fonctionnalité. Pas besoin de méthodes js personnalisées pour l'analyse.
Curieux si quelqu'un pouvait identifier des problèmes potentiels avec lui (tels que des problèmes de sécurité?) Ou faire des suggestions pour d'autres alternatives. Nous utilisons actuellement Prototype et YUI 2 sur le front-end.
Merci pour la réponse !! Une fois que j'ai relu votre message quelques fois j'ai tout eu pour travailler (malgré mon commentaire précédent que j'ai édité lol !!). Excellentes suggestions. Très appréciée! – skel625
"Appeler simplement eval() sur la valeur comme ça semble un peu dangereux, même si vous savez peut-être bien ce que ça va être." Je pensais la même chose, mais je ne voyais pas comment cela pourrait être utilisé avec malveillance, car les post-processus sont tous des événements assez standard qui ne permettent pas plus de «hack-ability» que ce qui est normalement possible par l'utilisateur . Mais je ne suis pas un expert sur les questions de sécurité js !! ;) – skel625
Eh bien, tant que ce contenu n'a pas de contenu fourni par l'utilisateur, vous êtes OK. Si c'est le cas, alors il y a des façons de vous protéger là aussi. – Pointy