Elm:
הורדת דף אינטרנט
איך לעשות:
ב-Elm, אנו משתמשים ב-http package כדי להוריד נתונים מהאינטרנט:
module Main exposing (main)
import Html exposing (Html, text)
import Http
import Json.Decode exposing (string)
type Msg
= GotText (Result Http.Error String)
type alias Model =
{ content : String }
init : Model
init =
{ content = "" }
update : Msg -> Model -> Model
update msg model =
case msg of
GotText (Ok newText) ->
{ model | content = newText }
GotText (Err _) ->
model
subscribe : Model -> Sub Msg
subscribe model =
Http.get
{ url = "https://example.com"
, expect = Http.expectString GotText
}
|> Sub.task
view : Model -> Html Msg
view model =
text model.content
main : Program () Model Msg
main =
Html.program
{ init = (init, Cmd.none)
, view = view
, update = update
, subscriptions = subscribe
}
הדוגמא מתארת איך לשלוח בקשה לשרת ולקבל תוכן כטקסט.
צלילה עמוקה
Elm מספקת פרדיגמה נקייה לניהול תוכנת ווב על ידי שימוש ב-Architecture שלה: Model, Update ו-View. בעבר, בשפות אחרות כמו JavaScript, תהליך זה היה מעט מסורבל יותר. Elm מאוד ממוקדת בטיפול בתוצאות אסינכרוניות, כמו הורדות, בצורה מסודרת ועקבית. תחליף אפשרי ל-http ב-Elm הוא עבודה עם WebSockets למהירות גבוהה יותר ותקשורת דו-כיוונית.