2016-04-17 10 views
4

Ich frage mich, was ist der Nutzen und die Differenz ist, wenn Stile als Blob Links verwenden:Blob basierend 'Link Sheet' vs standard 'Stil' tag

<link rel="stylesheet" href="blob:http://www.domain.com/hash-here"> 

über den Standard-Tag:

<style>...</style> 

I mittlere Blob-Erstellung wie:

var blob = new Blob([css_here], {type: 'text/css'}); 
var link = document.createElement('link'); 
link.rel = 'stylesheet'; 
link.href = window.URL.createObjectURL(blob); 
head.appendChild(link); 

Vielen Dank im Voraus.

Antwort

2
  • Speicherverwaltung

Wenn Sie Sachen wie style setzen, und dann entfernen - es ist weg. Wenn Sie jedoch Sachen als Blob-URL setzen und dann entfernen - haben Sie immer noch die Blob-URL im Speicher, und sie sollte manuell freigegeben werden. die hier Hinweise. Siehe: https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#Notes

  • Relative Pfade Auflösung

Mit style alle relativen URLs werden transparent innen aufgelöst (zB @font-face { src: url('/assets/font.ttf'); } Aber mit Klecksen, werden diese relativ Urls wie bezogen auf das behandelte Blob URL selbst (dh relativ zu blob:http://domain/some-hash). So werden die relativen URLs in diesem Fall effektiv zu stoppen.