Scénario: J'ai une application Delphi Intraweb qui a des composants d'édition et des boutons sur un écran. Dans TIWEdit.OnAsyncExit et TIWButton.OnClick, un indicateur est défini et un autre thread de l'application définit les propriétés activées des boutons en fonction des indicateurs et d'autres données d'application. Au moment où les propriétés TIWButton.Enabled sont définies, la requête est déjà terminée et l'interaction suivante est annulée car IW découvre que la représentation interne et la forme HTML ne sont pas synchronisées. Il resynchonise et vous devez cliquer à nouveau. Je voudrais rafraîchir l'écran en quelque sorte sur demande. Un temporisateur qui découvre si les deux sont synchronisés et émet un rafraîchissement a des inconvénients dans le trafic et le calendrier (je peux cliquer sur un bouton avant un minuteur). Les formulaires IntraWeb peuvent-ils être synchronisés à la demande?
Répondre
Je ne suis pas complètement sûr si votre question est la même que la mienne, pourtant je pense qu'il y a beaucoup en commun. Voir le projet de démonstration (v2) que j'ai posté sur le forum Intraweb. Sur la base de certains commentaires de Jackson Gomes, j'active un TIWTimer avant le démarrage d'un thread long et le désactive après la fin du thread. Voir: http://forums3.atozed.com/IntraWeb.aspx (atozedsoftware.intraweb.attachments), thread 'Mise à jour IWLabel via Thread', 15 octobre 2009.
L'événement de temporisateur OnASync est déclenché toutes les 500 ms et utilise une bande passante. Acceptable dans ma situation (intranet de l'entreprise).
Gert
Vous pouvez utiliser le module Web Interop à partir du pack de composants IWElite. Essentiellement, vous écrivez un peu de Javascript en utilisant l'objet XMLHTTPRequest (XHR) pour appeler dans l'action du module Web de votre application IW qui revient lorsque le traitement est terminé. Si vous avez besoin de votre application IW pour continuer à fonctionner normalement pendant que le processus est en cours, votre Javascript pourrait ouvrir une fenêtre de progression et faire l'appel XHR à partir de là.
IW Elite se trouve ici: http://code.google.com/p/iwelite/
demande Un XHR ressemblerait à quelque chose comme ceci:
function NewXHR() {
if (typeof XMLHttpRequest == "undefined") {
try { return new ActiveXObject('Msxml2.XMLHTTP.6.0');} catch(e) {}
try { return new ActiveXObject('Msxml2.XMLHTTP.3.0');} catch(e) {}
try { return new ActiveXObject('Msxml2.XMLHTTP');} catch(e) {}
try { return new ActiveXObject('Microsoft.XMLHTTP');} catch(e) {}
throw new Error('AJAX not supported in this browser.');
} else {
return = new XMLHttpRequest();
}
var xhr = NewXHR();
xhr.open("get", '/mywebaction', false);
xhr.send(null);
window.alert(xhr.responseText);
Le code ci-dessus bloquera et attendre la réponse. Si vous préférez avoir agir de manière asynchrone, vous pourriez plutôt faire ce qui suit:
var xhr = NewXHR();
xhr.open("get", '/mywebaction', true);
xhr.onreadystatechange = function() {
if(xhr.readyState == 4) {
if ((xhr.status == 200) || (xhr.status == 304) || (xhr.status === 0)) {
window.alert('Success: '+xhr.responseText);
} else {
window.alert('Error: ('+xhr.status+') '+xhr.statusText;
}
}
};
xhr.send(null);
- 1. Comment conserver les raccourcis d'application actuels/synchronisés?
- 2. L'authentification par formulaires a échoué pour la demande
- 3. "bpl" charger dans IntraWeb
- 4. Serveurs Subversion fédérés (synchronisés)?
- 5. Modification des messages pour les champs obligatoires dans IntraWeb
- 6. Garder les fichiers point synchronisés sur les machines?
- 7. Enregistrer sous forme de formulaires Web --- demande de modèle
- 8. Django - Remplacer get_form pour personnaliser les formulaires d'administration en fonction de la demande
- 9. À jour vs à la demande
- 10. MSI Meilleures pratiques d'installation à la demande?
- 11. Les formulaires liés aux jeux d'enregistrements ADO pouvant être mis à jour ne peuvent pas être mis à jour lorsque la source inclut un JOIN
- 12. Ouverture d'un fichier personnalisé à la demande
- 13. Grille Infragistics "à la demande" apparence
- 14. AJAX et les formulaires
- 15. Ajax demande à nouveau
- 16. Comment recharger Ext.tree.TreePanel à la demande?
- 17. JQuery Soumettre conditionnellement les formulaires
- 18. PartialView dans les formulaires Web
- 19. Interrogation de la bibliothèque de formulaires infopath
- 20. Amener les formulaires Windows Mobile 6 à l'avant
- 21. XCode et Interface Builder ne sont plus synchronisés
- 22. Modélisation de la demande d'offre
- 23. Erreur de initialisation sur IntraWeb en utilisant ADO
- 24. Que signifie le terme "appels synchronisés en entrée"?
- 25. Groupe d'entrée dans les formulaires
- 26. Comment la demande de validation peut-elle être désactivée pour HttpHandlers?
- 27. Contenu dynamique dans les formulaires Windows
- 28. La demande n'a pas pu être soumise pour traitement en arrière-plan?
- 29. formulaires à base de tables?
- 30. Barre de déplacement à curseurs multiples pour les formulaires Windows
Désolé, cela ne va pas pour moi que je suis dans la nature avec un trafic important parfois. Mais merci pour la réponse. –