2010-04-16 2 views
2

J'essaie de lire un fichier avec GDownloadUrl de google et cela ne fonctionne que de temps en temps. Cependant,Javascript - pourquoi est-il parfois impossible de lire le contenu d'un fichier avec GDownloadUrl?

  • échec signifie fileRows == "bla bla"
  • (contenu réel des fichiers) signifie le succès fileRows ==

J'ai remarqué, que quand je cesse (avec Firebug) la exécution sur la ligne 3 pendant quelques secondes, il réussit plus souvent. Peut-être que c'est une sorte de bug de threading, alors? Avez-vous des pourboires ou des idées?

1 var fileContent = "blah blah"; 
2 availabilityFile = "input/available/" + date + ".csv"; 
3 GDownloadUrl(availabilityFile, function(fileData) { 
4  fileContent = fileData; 
5 }); 
6 fileRows = fileContent.split("\n"); 

Répondre

4

GDownloadUrl est une opération asynchrone. Ainsi, Line 6 est exécutée immédiatement, sans attendre que GDownloadUrl se termine. Utilisez la fonction onload pour effectuer les opérations qui ne peuvent être effectuées que lorsque le téléchargement est terminé.

0

Merci pour l'explication. Il semble donc qu'un tel code devrait être écrit comme prévu.

1 var fileContent = "blah blah"; 
2 availabilityFile = "input/available/" + date + ".csv"; 
3 GDownloadUrl(availabilityFile, function(fileData) { 
4  fileRows = fileData.split("\n"); 
5 }); 
Questions connexes