Greasemonkey: El usuario debe poder controlar el orden de ejecución del script.

Creado en 15 nov. 2017  ·  10Comentarios  ·  Fuente: greasemonkey/greasemonkey

La clasificación por "orden de ejecución" es la característica que más extraño del cuadro de diálogo "administrar" de pestaña completa heredado.
Actualmente (en GM 4.0), como parece, los scripts se ejecutan tal como aparecen en la lista emergente, es decir, en orden alfabético.
Dado que esta clasificación ya no está disponible, ya no hay una forma rápida de resolver los conflictos de script de usuario.


Como referencia, cito de la página wiki 'Orden de secuencia de comandos' (ahora eliminada):

_Orden de secuencia de comandos_

_Los guiones se pueden mostrar en orden por: _

  • _Status: los scripts se ordenan por estado de activación: habilitado o deshabilitado, luego el nombre.
  • _Nombre: los scripts se ordenan alfabéticamente por nombre, independientemente del estado.
  • _ Orden de ejecución : los scripts se ordenan por índice de ejecución.

_Este último orden es importante para los scripts de usuario que entran en conflicto entre sí. Al cambiar el orden de los guiones, se puede resolver el conflicto. Puede cambiar el orden haciendo clic con el botón derecho en un script de usuario y elegir una de las acciones: Execute first , Execute sooner , Execute later o Execute last ._

Comentario más útil

De hecho, esta es una característica de 3.x que falta en 4.x.

Definitivamente no voy a prometer ninguna característica / interfaz de usuario en particular, pero sería bueno poder tener dos scripts instalados que deben ejecutarse en un orden particular.

Todos 10 comentarios

De hecho, esta es una característica de 3.x que falta en 4.x.

Definitivamente no voy a prometer ninguna característica / interfaz de usuario en particular, pero sería bueno poder tener dos scripts instalados que deben ejecutarse en un orden particular.

¿Qué pasaría si en la fuente del script tuviéramos una función // <strong i="5">@priority</strong> (int) , o tal vez deberíamos llamarlo nivel de ejecución, ya que la prioridad podría ser la falta de liderazgo?
cada lágrima se puede iniciar en / casi al mismo tiempo a través de funciones asíncronas
probablemente deberíamos apoyar valores negativos también

A diferencia de los niveles de ejecución de UNIX, para los que existe una especie de orden natural, el orden de ejecución de los scripts parece más arbitrario. Creo que debería depender del usuario. Una prioridad predeterminada que proviene de una etiqueta en el script no es una mala idea, pero debe haber una facilidad para anular el orden, como ha sucedido en versiones anteriores de GM.

Estoy de acuerdo con eso, pero podríamos editar el nivel de ejecución / prioridad de los scripts desde la fuente si es necesario; Supongo que sería más fácil de implementar, momento en el que se podría construir una interfaz de usuario a su alrededor.

Vote por esto también. Algunos de mis scripts deben ejecutarse en un orden particular y romperse si no se ejecutan en su momento.
Yo también creo que esto debería depender del usuario para decidir este orden. La interfaz de usuario puede referirse a una especie de directiva de "orden" / "nivel de ejecución" del script, pero la última palabra debe ser del usuario. Incluso puedo imaginar un par de scripts que se comportan intencionalmente de manera diferente cuando se ejecutan 1º-2º o 2º-1º, ya que ambos se refieren al DOM de la página que es modificado por ellos.

En mi humilde opinión, un nivel de ejecución no es lo que necesitamos aquí.
Creo que, en la mayoría de los casos, se trata solo de ejecutar el script A antes que el script B.
Esta es una restricción (relativa). El nivel de ejecución es una medida absoluta. No adecuado.
Además, la restricción es bastante escasa. Todo lo que necesitas es lo "anterior" / "posterior",
y tal vez, solo por comodidad, "primero" / "último" ...

Esto no es (estrictamente) una propiedad del script en sí, por lo que no debería ser un encabezado @tag integrado en la fuente. Este es un síntoma de alguna combinación de secuencias de comandos en la que los cambios de uno rompen al otro (pero no al revés), por lo que el otro debe ejecutarse primero.

¿Esta característica seguirá existiendo algún día? Me lo he estado perdiendo desde que salió 4.x, y tuve que hacer algunas malas soluciones en mis scripts para que se ejecutaran en el orden correcto por el momento.

... algunas malas soluciones ...

¿Cuál fue la solución alternativa y por qué fue deficiente?

Recuerdo haber creado un div invisible con un script y configurar un temporizador en el otro, que era para verificar si el div existía todavía. ¿O fue estúpido?

No creo que uno pueda establecer variables globales con Greasemonkey y hacer que otras secuencias de comandos puedan acceder a ellas. E incluso eso requeriría configurar un temporizador, ¿no?

¿Fue útil esta página
0 / 5 - 0 calificaciones