2016-04-17 3 views
4

Интересно, что польза и разница при использовании стилей как Blob ссылки:Blob на основе «ссылка таблицы стилей» против стандартного «стиля» тег

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

по стандартному тегу:

<style>...</style> 

I среднее создание блоха как:

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); 

Заранее благодарен.

ответ

2
  • Управление памятью

Если вы положили вещи, как style, а затем удалить - это пошло. Однако, если вы помещаете материал в качестве URL-адреса blob, а затем удаляете - у вас все еще есть url blob, хранящийся в памяти, и его следует освобождать вручную. Смотрите примечания здесь:. https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#Notes

  • Относительные пути разрешения

С style всех относительных адресов внутри разрешаются прозрачно (например @font-face { src: url('/assets/font.ttf'); } Но сгустков, эти относительные адреса рассматриваются как по отношению к blob url (т.е. относительно blob:http://domain/some-hash). Таким образом, относительные URL-адреса фактически прекратят работать в этом случае.

Смежные вопросы