2010-03-22 4 views
0

Je voudrais implémenter l'estimateur de téléchargement en utilisant le JavaScript et l'Ajax. Je suis allé à travers Google, les messages existants sur stackoverflow aussi pour trouver les implémentations existantes pour l'estimateur de téléchargement et j'ai trouvé la plupart du temps demandant la bande passante de l'utilisateur, puis de calculer le nombre est la stratégie. C'est une bonne approche et il n'y a presque rien sur fiable pour obtenir le bon temps.Télécharger l'estimateur en utilisant JavaScript et Ajax

Ce que je voudrais essayer est d'utiliser Ajax pour demander la taille de fichier 100KB - 200 KB et faire les maths obtiennent le nombre et mettent à jour l'affichage. Maintenant, cela est entouré de tant de questions comme le réseau, le nombre de paquets formés, les procurations, etc? Tous ces facteurs sont suffisants pour refuser l'approche. Mais c'est comme ça que je dois faire ça.

Maintenant, je voudrais ici des contributions de vous tous pour le rendre meilleur (comme bonne discussion)? ce que tout peut être ajouté à cela? Pouvons-nous connaître l'utilisation de la bande passante sans demander? Comment peut-il être amélioré?

Répondre

1

Vous pouvez tester vous-même la bande passante en incluant un horodatage dans la demande de page initiale avec la taille, et calculer par rapport à l'heure actuelle dans le navigateur.

var size = $size; //in KB 
var timestamp = $timestamp; 
var currTime = new Date().getTime(); 
var kbps = size/((currTime-timestamp)/1000); 

Ici, ma notation $ indique une variable qui se trouve sur le serveur. Ce ne serait évidemment pas parfait, mais ce serait plus précis que de demander à l'utilisateur.

+0

dans le cas où une compression de niveau de transport est activée (par exemple, gzip), la page compresse probablement beaucoup mieux qu'un échantillon moyen de données, donc cela peut ne pas donner de résultats corrects, mais une idée intéressante – Marek

Questions connexes