Vanliga standarder

HTML

HyperText Markup Language

Hypertext is text which contains links to other texts.

Markup Language

Språk för att märka upp innehåll

HTML, XML, MarkDown

SGML

Standardized Generalized Markup Language

Inget språk utan ett sätt att strukturera data

(SGML; ISO 8879:1986) is a standard for defining generalized markup languages for documents.

HTML

HTML var baserat på standarden SGML

Med HTML5 frångick HTML den standarden

HTML5 Saknar DTD: DocType Definition

XHTML

XHTML är ett försök att få mer strukturerad HTML

Använder en DTD

<!DOCTYPE html PUBLIC "-
          //W3C//DTD XHTML 1.0 Strict
          //EN" "http://www.w3.org/TR/xhtml1/DTD
          /xhtml1-strict.dtd">

HTML4 Doctype

<!DOCTYPE HTML PUBLIC "-
          //W3C//DTD HTML 4.01 Transitional
          //EN" "http:
          //www.w3.org/TR/html4/loose.dtd">
          

Inget vi behöver oroa oss för

XML

eXtensible Markup Language

Bygger också på SGML

Ett sätt att strukturera data och inte för att visa data

<person>
  <name> Gooby Flooby </name>
  <occupation> Made up </occupation>
</person>

XML & HTML

Är lika för de bygger på samma ISO-standard i grunden

XML är för att strukturera data

HTML är för att visa data

Document Object Model

DOM

Varje tag i både XML & HTML skapar en node

En nod är ungefär som ett objekt som kan manipuleras med hjälp av JavaScript

DOM är inte vår HTML men det är också vår HTML

Noder

  • text node
  • element node
  • attribute node
Node List
var els = document.getElementsByTagName('li');

Vad returneras?

"Array-like" collection

Något som liknas en array men egentligen är:

HTMLCollection eller NodeList

Complications

Inte en riktig array

Har inte en arrays metoder

Array.from(elements)


  //dot notation, som javascript
  body.style.background = "red";

  //Returnerar en NodeList
  var els = document.querySelectorAll('li');

Standarder för datalagring

Hur ska data lagras

Data ska kunna parsas

Ska kunna läsas enkelt av både människa och maskin

var jsObject = {
  name: "Gurt Flurgur",
  weapon: "Rusty knife",
  hp: 10
  warCry: function(){
    return "ugh";
  }
}

JSON

JavaScript Object Notation

JSON

Subset of ECMAScript Objects

Kommer ifrån JavaScript

Till skillnad från XML som har satt standarden för allt annat

{
  "name": "Gurt Flurgur",
  "weapon": "Rusty knife",
  "hp": "10"
  "warCry": "function(){
    return 'ugh';
  }"
}

Allowed datatypes

  • Number
  • String
  • Bool
  • Array
  • Object
  • Whitespace
  • Null

Unallowed datatypes

function()

undefined

DATA SOM DATA: Vi kan skicka med en function men vi ska inte

{
  "name": "Gurt Flurgur",
  "weapon": "Rusty knife",
  "hp": "10",
}

Läsbart för datorn

JSON är standarden för att skicka information på webben

I princip ett mer strukturerat och strikt objekt

Key / Value pair

Serialization

Processen att ta ett objekt och konvertera den till en sträng

Alla värden som skickas med måste vara i form av en sträng

Datorn ska kunna veta hur den ska konvertera tillbaka till ett objekt

I JavaScript: JSON.stringify()

Parsing

Även kallat de-serialization

När vi väl ska använda data från JSON

Konvertera tillbaka till ett objekt

I JavaScript: JSON.parse()

JSON-file

Filändelse: .json

JSON strukutureras på detta sätt för att data ska skickas