Opprette en midlertidig fil

Elm:
Opprette en midlertidig fil

How to:

Elm kjører i nettleseren og har ikke direkte tilgang til filsystemet, så eksemplene vi vanligvis snakker om for å lage midlertidige filer er ikke relevant. Men vi kan se på hvordan du kan håndtere midlertidige data i Elm ved hjelp av Web Storage APIemulering:

module Main exposing (..)

import Browser
import Html exposing (Html, button, div, text)
import Html.Events exposing (onClick)
import Json.Decode exposing (Value)
import Ports exposing (setTempData, getTempData)

-- MAIN

main =
  Browser.element
    { init = init
    , view = view
    , update = update
    , subscriptions = \_ -> Sub.none
    }


-- MODEL

type alias Model =
    { tempData : Maybe String
    }

init : () -> (Model, Cmd Msg)
init _ =
    (Model Nothing, getTempData)


-- UPDATE

type Msg
    = SetTemp
    | GetTemp Value

update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
    case msg of
        SetTemp ->
            (model, setTempData "Dette er midlertidig data.")

        GetTemp value ->
            ( { model | tempData = Just (Json.Decode.decodeValue Json.Decode.string value |> Result.withDefault "Ingen data") }
            , Cmd.none
            )


-- VIEW

view : Model -> Html Msg
view model =
    div []
        [ button [ onClick SetTemp ] [ text "Lagre midlertidig data" ]
        , button [ onClick (GetTemp "") ] [ text "Hent midlertidig data" ]
        , case model.tempData of
            Just data -> text ("Midlertidig data: " ++ data)
            Nothing -> text "Ingen lagret midlertidig data"
        ]

Deep Dive

I Elm, som er designet for frontend-utvikling, er direkte skriving til filsystemet ikke innebygget fordi nettleseren vanligvis håndterer filtilganger av sikkerhetshensyn. Tradisjonelt sett, i server-side programmering eller skrivebordsapplikasjoner i språk som C, Java eller Python, er opprettelse av midlertidige filer en integrert del for various oppgaver som bufferhåndtering, dataoverføring mellom prosesser og som et transaksjonsmiddel ved databaseoperasjoner.

Alternativene til midlertidige filer i Elm kan være å bruke webteknologier som Web Storage API (Local Storage and Session Storage), IndexedDB, eller server-side lagringsløsninger som REST API-er og databaser som mellommenn for lagring av data.

Implementeringsdetaljer vil variere avhengig av behov og miljø. Web Storage API fungerer ved å lagre nøkkel-verdipar i nettleseren og er godt egnet for enkle lagringsoppgaver.

See Also