Ogólne#
URLUtils i URLUtilsReadOnly#
W tym miejscu umieszczam powtarzające się specyficzne pojęcia i algorytmy w interfejsie URLUtils i URLUtilsReadOnly.
Pojęcia#
Obiekt implementujący interfejs URLUtils lub URLUtilsReadOnly jest skojarzony z wejściem # (input) [łańcuch znakowy], kodowaniem zapytania # (query encoding) [kodowanie], obiektem zapytania # (query object) [obiekt typu URLSearchParams
lub wartość null
] oraz url # (url) [adres URL lub wartość null
].
Jeśli nie określono inaczej, to kodowaniem zapytania jest utf-8 i obiektem zapytania jest wartość null
. Reszta ustawiona zostaje zgodnie z algorytmem ustawienia wejścia.
Powiązanie z kodowaniem zapytania jest zaszłościową koncepcją i dotyczy tylko HTML-a.
Algorytmy#
get the base
Specyfikacje definiujące obiekty implementujące interfejs URLUtils lub URLUtilsReadOnly muszą definiować algorytm pobrania bazy # (get the base), który musi zwrócić odpowiedni bazowy adres URL dla obiektu.
set the input
Specyfikacje definiujące obiekty implementujące interfejs URLUtils lub URLUtilsReadOnly muszą używać algorytmu ustawienia wejścia # (set the input) do ustawienia wejścia, url oraz obiektu zapytania. Algorytm pobiera łańcuch znakowy input oraz opcjonalny adres URL url, i wykonuje następujące kroki:
- Jeśli url został przekazany, to ustaw url na url i wejście na input.
W przeciwnym razie wykonaj poniższe podkroki:
- Ustaw url na wartość
null
. - Jeśli input jest wartością
null
, to ustaw wejście na pusty łańcuch znakowy. W przeciwnym razie wykonaj poniższe podkroki:
- Ustaw wejście na input.
- Niech url będzie wynikiem uruchomienia parsera adresu URL na wejściu, z bazowym adresem URL będącym wynikiem pobrania bazy oraz kodowaniem zapytania jako encoding override.
- Jeśli url nie jest błędem, to ustaw url na url.
- Ustaw url na wartość
- Niech query będzie zapytaniem z url jeśli url nie jest wartością
null
, w przeciwnym razie pustym łańcuchem znakowym. - Jeśli obiekt zapytania jest wartością
null
, to ustaw obiekt zapytania na nowy obiektURLSearchParams
używając query, a następnie dodaj obiekt kontekstu do listy obiektów url skojarzonej z obiektem zapytania. - W przeciwnym razie ustaw listę skojarzoną z obiektem zapytania na wynik uruchomienia parsera
application/x-www-form-urlencoded
łańcucha znakowego z przekazaniem query.
update steps
Specyfikacje definiujące obiekty implementujące interfejs URLUtils muszą definiować kroki aktualizacji # (update steps), aby możliwa była aktualizacja bazowego łańcucha znakowego (jak w przypadku wartości atrybutu). Do kroków aktualizacji jest przekazywany łańcucha znakowy value.
pre-update steps
Aby wykonać przed aktualizację kroków # (pre-update steps) dla obiektu implementującego interfejs URLUtils, z opcjonalnym przekazaniem wartości value, należy wykonać następujące kroku:
- Jeśli value nie została przekazana, to niech value będzie wynikiem uruchomienia serializera adresu URL na skojarzonym url.
- Uruchom kroki aktualizacji z przekazaniem value.