Je lisais wiki de GM pour déterminer la différence entre @downloadURL
& @updateURL
(ce que je n'ai pas fait). Mais ce qui m'a encore plus troublé, c'est que les deux ne sont pas conseillés:
Il est inhabituel de spécifier cette valeur. La plupart des scripts devraient l'omettre.
Cela m'étonne car c'est le seul moyen pour les scripts de se mettre à jour automatiquement et je ne vois pas pourquoi ces clés ne devraient pas être utilisées.
Le wiki lui-même manque assez et aucune autre source de forum n'est conseillée, je dois donc demander ici. Apprécierais également des informations plus détaillées sur ces clés.
L'utilisation de ces clés est déconseillée principalement par le développeur principal de Greasemonkey. La plupart des autres, y compris l'équipe de Tampermonkey ne ressentent pas le besoin d'un tel avertissement.
Notez également que ces directives sont pas toujours nécessaires pour que les mises à jour automatiques fonctionnent.
Quelques raisons pour lesquelles il dirait que c'était inhabituel et que "la plupart" des scripts devraient l'omettre:
Notez que cette entrée wiki était faite par le développeur principal de Greasemonkey (Arantius) lui-même ; donc ce n'était pas seulement du bruit wiki.
Les mises à jour du script sont effectuées en 4 phases:
Pour cette question, nous ne sommes concernés que par les phases check et download. Nous stipulons que les mises à jour sont activées et que le script mis à jour était valide et installé correctement.
Lors de la mise à jour des scripts, Greasemonkey (et Tampermonkey) télécharge les fichiers deux fois :
updateURL
du script, consiste simplement à vérifier @version
(Le cas échéant) et la date du fichier - pour voir si une mise à jour est disponible.Le deuxième téléchargement, contrôlé par la valeur downloadURL
du script, est le téléchargement réel du nouveau script à installer. Ce téléchargement ne se produira que si le fichier serveur a un numéro @version
Supérieur au fichier local et/ou si le fichier serveur a une date plus récente que le fichier local. (Attention, il existe ici des différences critiques entre les moteurs de script.)
Voir "Pourquoi utiliser @downloadURL et @updateURL" ci-dessous pour les raisons pour lesquelles 2 téléchargements de fichiers sont utilisés.
@downloadURL
Et @updateURL
Fonctionnent:@downloadURL
Remplace simplement l'emplacement interne "URL de téléchargement" par défaut.@updateURL
Remplace simplement l'emplacement interne par défaut de "mise à jour de l'URL" (ou de vérification).
Dans la plupart des cas, cela n'est pas nécessaire. Voir ci-dessous.
@downloadURL
Est spécifié, alors Greasemonkey les deux vérifiera et téléchargera depuis l'emplacement spécifié plutôt que l'emplacement stocké.@updateURL
Est spécifié, alors Greasemonkey vérifiera (pas télécharger) à partir de l'emplacement de "mise à jour" donné.Ainsi: @updateURL
Remplace à la fois @downloadURL
Et l'emplacement par défaut pour les opérations vérification uniquement.
While: @downloadURL
Remplace l'emplacement par défaut pour les deux vérification et téléchargement (sauf si @updateURL
Est présent ).
@downloadURL
Et @updateURL
:Tout d'abord, il y a 2 téléchargements et potentiellement 2 emplacements différents principalement pour des raisons de vitesse et de bande passante . Considérons un scénario dans lequel un très grand script utilisateur a des milliers d'utilisateurs:
userscripts.org
.veryLarge.user.js
Et veryLarge.meta.js
veryLarge.meta.js
Serait mis à jour (par le développeur) à chaque fois que le script utilisateur était et contiendrait simplement le bloc de métadonnées de veryLarge.user.js
.veryLarge.meta.js
Beaucoup plus petit, ce qui ferait gagner du temps à tout le monde et économiser la bande passante du serveur.De nos jours, Greasemonkey et Tampermonkey recherchent automatiquement un fichier *.meta.js
, Donc il n'est normalement pas nécessaire d'en spécifier un séparément.
Donc, pourquoi spécifier explicitement @downloadURL
Et/ou @updateURL
? Quelques raisons possibles:
@downloadURL
Est également un moyen pratique "d'auto-documentation" d'enregistrer/transmettre d'où l'utilisateur a obtenu le script.*.meta.js
Sur un serveur différent de celui du script utilisateur pour une raison quelconque.(Attention: je n'ai pas vérifié tout cela depuis un moment. Sujet à changement de toute façon car Tampermonkey s'améliore constamment (et Greasemonkey change également beaucoup).)
Tampermonkey nécessite une directive @version
À la fois sur le fichier actuel et le fichier plus récent. C'est ainsi que Tampermonkey détermine si une mise à jour est disponible.
Greasemonkey utilisera également cette méthode, donc incluez toujours @version
Dans les scripts que vous voudrez peut-être mettre à jour automatiquement.
Cependant, Greasemonkey requiert également que le fichier de mise à jour soit plus récent. Et si aucune version n'est présente, Greasemonkey ne comparera que les dates. Notez que cela a causé des problèmes dans Greasemonkey dans le passé et suppose également que de nombreuses machines différentes sont synchronisées avec précision avec la date et l'heure correctes.
Greasemonkey ne sera mis à jour qu'à partir des schémas https://
Par défaut, mais peut éventuellement être défini pour autoriser les schémas http://
Et ftp://
.
Les deux moteurs n'autorisent jamais les mises à jour à partir des schémas file://
.