Question

Toutes mes recherches jusqu'à présent suggèrent cela ne peut pas être fait, mais j'espère que quelqu'un a ici quelques idées de ruse.

J'ai un formulaire sur un site Web qui permet aux utilisateurs de lots de téléchargement en vrac d'URL à ajouter à une liste sur le serveur. Il y a beaucoup de traitement côté serveur à faire sur chaque URL, ainsi les délais d'attente d'éviter et au progrès d'affichage, j'ai mis le téléchargement en utilisant jQuery pour soumettre les URL une à la fois en utilisant ajax.

Ceci est tout travail bien. Toutefois, une partie du traitement de chaque URL est dédupliquant contre la liste complète. L'appel ajax renvoie un état indiquant soit un chargement réussi ou un rejet en raison de la duplication. Comme les progrès de téléchargement, je dis à l'utilisateur combien d'URL ont été rejetées comme des doublons (ainsi que des progrès globaux et ETA).

Le problème est de savoir comment donner à l'utilisateur une liste complète des URL en double échec. Je les ai gardées dans un tableau dans mon jQuery, et je voudrais que l'utilisateur soit en mesure de cliquer sur un lien sur le formulaire pour télécharger un fichier texte contenant les URL. Est-ce possible tout en utilisant le traitement côté client?

Le traitement côté serveur gère essentiellement un seul mot-clé à la fois. Je préfère ne pas avoir à stocker les doublons dans une table de base de données avec une sorte de clé de session qui est envoyé à chaque appel ajax, et est ensuite utilisé à la fin pour générer le fichier texte côté serveur (puis obtient nettoyé certains plus tard). Je peux voir comment faire, mais il semble très maladroit et un peu du 20ème siècle.

Était-ce utile?

La solution

Je n'ai pas utilisé moi-même encore, mais Downloadify a été construit dans ce but précis, je pense .

  

Downloadify est un petit JavaScript + bibliothèque Flash qui permet la génération et la sauvegarde des fichiers à la volée, dans le navigateur, sans interaction du serveur.

Il a été créé par Doug Neiner qui est aussi assez actif sur le débordement de pile.

Il a besoin de Flash 10 au travail.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top