Elm:
Завантаження веб-сторінки
How to: (Як зробити:)
В Elm, ви можете завантажити веб-сторінку використовуючи Http
модуль. Нижче представлений приклад запиту до сервера та обробки відповіді.
import Http
import Json.Decode as Decode
type Msg
= GotText (Result Http.Error String)
getText : Cmd Msg
getText =
Http.get
{ url = "https://example.com"
, expect = Http.expectString GotText
}
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
case msg of
GotText (Ok text) ->
({ model | content = text }, Cmd.none)
GotText (Err _) ->
(model, Cmd.none)
-- initialize and subscriptions omitted for brevity
У прикладі вище код робить HTTP GET запит до "https://example.com"
і очікує на текстову відповідь.
Deep Dive (Поглиблений Аналіз)
Завантаження веб-сторінок у Elm розпочалося з релізом мови, який перекладення веб-запитів на більш високий рівень абстракції. Elm використовує Http
модуль, який робить чисті HTTP запити без бокових ефектів, узгоджуючись з архітектурою Elm.
Альтернативою є пряме використання JavaScript через порти (ports), але це здебільшого підходить для складних випадків, де Elm Http
модуль не пропонує потрібного функціоналу. Модуль Http
використовує Task
для представлення асинхронних запитів які можуть виконатися паралельно та легко об’єднуватися.
See Also (Дивись також)
- Елм модуль Http: Http package
- Про обробку JSON у Елм: JSON Decoding
- Офіційний Elm Гід: Official Elm Guide