Greasemonkey: O usuário deve ser capaz de controlar a ordem de execução do script

Criado em 15 nov. 2017  ·  10Comentários  ·  Fonte: greasemonkey/greasemonkey

A classificação por "ordem de execução" é o recurso que mais sinto falta na caixa de diálogo "gerenciar" de abas completas legadas.
Atualmente (no GM 4.0), ao que parece, os scripts são executados conforme são listados no pop-up, ou seja, em ordem alfabética.
Com essa classificação não mais disponível, não há mais uma maneira rápida de resolver conflitos de script de usuário.


Para referência, cito a (agora removida) página wiki 'Ordem do script' :

_Pedido de script_

_Os scripts podem ser exibidos em ordem por: _

  • _Status - os scripts são ordenados por status de ativação: ativado ou desativado e, em seguida, nome._
  • _Nome - os scripts são ordenados alfabeticamente por nome, independentemente do status._
  • _ Ordem de execução - os scripts são ordenados pelo índice de execução._

_Esta última ordem é importante para scripts de usuário que entram em conflito uns com os outros. Ao alterar a ordem dos scripts, o conflito pode ser resolvido. Você pode alterar a ordem clicando com o botão direito em um script de usuário e escolher uma das ações: Execute first , Execute sooner , Execute later ou Execute last ._

Comentários muito úteis

Este é realmente um recurso do 3.x ausente no 4.x.

Definitivamente, não vou prometer nenhum recurso / IU em particular, mas seria bom poder ter dois scripts instalados que devam ser executados em uma ordem específica.

Todos 10 comentários

Este é realmente um recurso do 3.x ausente no 4.x.

Definitivamente, não vou prometer nenhum recurso / IU em particular, mas seria bom poder ter dois scripts instalados que devam ser executados em uma ordem específica.

E se no código-fonte do script tivéssemos um recurso // <strong i="5">@priority</strong> (int) , ou talvez devêssemos chamá-lo de nível de execução, pois a prioridade poderia ser perdida
cada rasgo pode ser iniciado quase ao mesmo tempo por meio de funções assíncronas
provavelmente devemos apoiar valores negativos também

Ao contrário dos níveis de execução do UNIX, para os quais existe uma espécie de ordem natural, a ordem de execução dos scripts parece mais arbitrária. Eu acho que deve ser com o usuário. Uma prioridade padrão que vem de uma tag no script não é uma má ideia, mas deve haver um recurso para substituir a ordem, como havia nas versões anteriores do GM.

Eu concordo com isso, mas poderíamos editar o nível de execução / prioridade dos scripts da fonte, se necessário; eu suponho que seria mais fácil de implementar, ponto em que uma interface do usuário poderia ser construída em torno dele

Vote nisso também. Alguns dos meus scripts precisam ser executados em uma ordem específica e podem ser interrompidos se não forem executados em seu tempo.
Eu também acho que deve caber ao usuário decidir esse pedido. A IU pode se referir a um tipo de diretiva "ordem" / "nível de execução" do script, mas a última palavra deve ser do usuário. Posso até imaginar um par de scripts que se comportam de forma intencionalmente diferente quando executados do 1º ao 2º ou do 2º ao 1º, já que ambos se referem ao DOM da página que é alterado por eles.

IMHO um nível de execução não é o que precisamos aqui.
Acho que, na maioria dos casos, trata-se apenas de executar o script A antes do script B.
Esta é uma restrição (relativa). O nível de execução é uma medida absoluta. Não é adequado.
Além disso, a restrição é bastante esparsa. Tudo que você precisa é a coisa "anterior" / "posterior",
e talvez, apenas para conforto, "primeiro" / "último" ...

Isso não é (estritamente) uma propriedade do próprio script, portanto, não deve ser um cabeçalho @tag incluído no código-fonte. Este é um sintoma de alguma combinação de scripts em que as alterações de um quebram o outro (mas não vice-versa), então o outro deve ser executado primeiro.

Esse recurso ainda será uma coisa algum dia? Eu sinto falta dele desde o lançamento do 4.x, e tive que fazer algumas soluções ruins em meus scripts para serem executados na ordem certa por enquanto.

... algumas soluções alternativas ruins ...

Qual foi a solução alternativa e por que foi ruim?

Lembro-me de criar um div invisível com um script e definir um cronômetro no outro, que era para verificar se o div já existia. Ou isso foi estúpido?

Acho que não se pode definir variáveis ​​globais com Greasemonkey e torná-las acessíveis por outros scripts? E mesmo isso exigiria definir um cronômetro, não é?

Esta página foi útil?
0 / 5 - 0 avaliações