2009-12-11 4 views
0

Nous avons une fenêtre contextuelle où l'utilisateur fait des sélections et clique sur un bouton pour générer un fichier pdf. Nous montrons un affichage de progression (gif animé), puis nous envoyons le contenu du pdf à l'utilisateur avec content-disposition: inline. L'utilisateur imprime alors habituellement le fichier pdf.Fermer une fenêtre de navigateur contextuel uniquement si l'utilisateur enregistre le fichier téléchargé

Pour certains utilisateurs, il n'y a pas de visionneuse de navigateur en ligne pour les fichiers PDF, et l'utilisateur est invité à enregistrer le fichier pdf. Dans ces cas, l'affichage de progression reste ouvert, même après la livraison du fichier. Quel est un bon moyen de détecter que l'utilisateur a choisi de sauvegarder le fichier plutôt que de l'afficher en ligne?

La seule idée que j'ai trouvée jusqu'ici est de définir une minuterie dans la fenêtre contextuelle pour fermer la fenêtre si son contenu est toujours là. En théorie, le minuteur serait effacé si le contenu de la fenêtre était remplacé par le visualiseur PDF. Y a-t-il d'autres options? Comment est-ce que je sais combien de temps pour régler la minuterie, si la génération de pdf pourrait prendre longtemps? Puis-je envoyer seulement les en-têtes http d'abord, et le contenu du pdf plus tard pour déclencher la visionneuse pdf rapidement?

Répondre

0

Nous avons résolu cela en réglant une minuterie juste avant de demander au serveur de commencer à générer le PDF. Si le PDF est ouvert par le visualiseur dans la fenêtre du navigateur, la minuterie est annulée. Si la minuterie n'est pas annulée, elle ferme la fenêtre. Nous avons choisi une longue période pour la minuterie.

Questions connexes