css 파일을 import 하는 방법은 다음의 두가지가 있다.
1. link태그 사용 <link rel='stylesheet' href='style.css'>
2. import 속성 사용 @import url('style.css');
결론적부터 말하면 @import 방식과 <link> 방식중 <link>방식을 활용하는 것이 페이지의 로딩 속도 향상
측면에서 뛰어나다.
## 각각 @import 방식과 <link>방식 사용시 속도 비교
1. @import - @import
<style>
@import
url(“a.css”);
@import
url(“b.css”);
</style>
이렇게 import를 연속으로 쓰는것은 페이지 로딩중에 스크립트오류가 발생할 수 있음에도 불구하고(순서가 어떻든 스크립트가 먼저 로딩되기 때문) 페이지의 속도 면에서는 문제될것이 없다. 하지만 style과 import를 같이 사용할 경우 속도 문제가 발생한다.
2. Link - @import
<link
rel=”stylesheet” type=”text/css” href=”a.css”>
<style>
@import
url('b.css');
</style>
IE(6,7,8)에서는 이러한 방법이 stylesheets를 나눠서 다운로드하는 것을 야기시킨다. 페이지 속도 향상의 주요한 내용중 하나는 정보를 병행해서 읽어드리는 것이다.
하지만 아래 그래프와 같이 html, link, import식으로 나눠서 읽어들여 페이지의 속도를 느리게 되는 것을 야기시킨다.
|
3. Link with @import
<link rel=”stylesheet” type=”text/css” href=”a.css”>
In a.css
@import url('b.css');
위와 같은 방식은 병행적으로 스크립트를 로딩하는것을 막는다
.
즉 아래와 같이 a.css를 다운로드 후 b.css를 fetch하기 시작하는 것을 볼 수 있다.
|
결론적으로 link에서의 import사용은 병행적인 다운로드를 할 수 없게 한다.
4. Link blocks @import
<link
rel=”stylesheet” type=”text/css” href=”a.css”>
<link
rel=”stylesheet” type=”text/css” href=”proxy.css”>
In
proxy.css
@import
url('b.css');
a.css는 link가 사용되어 졌고, proxy.css는 새로운 link로 연결되었다. proxy.css는 @import로 되어있는 b.css를 포함하고 있다.
아래의 첫번째 이미지는 IE에서의 결과이다. 읽어들인 순서는 1.html, 2.a.css, 3.proxy.css, 4.b.css이다.
신기하게도 a.css가 끝날때까지 b.css를 다운로드하지 않았다. 다른브라우져에서는
이런 현상이 발생되지 않았으며 아래의 두번째 이미지에서 속도가 빠르다는 결과를 볼 수 있다.
5. many @imports
@import
url('a.css');
@import
url('b.css');
@import
url('c.css');
@import
url('d.css');
@import
url('e.css');
@import
url('f.css');
<script
src='one.js' type='text/javascript'></script>
@import를 많이 사용한다면 IE에서는 순서가 뒤섞여 다운로드 된다. 이 여섯개의 스타일 예는 스크립트 로드후에 다운로드 된다. 아래 이미지를 보면 가장
긴 빨간선이 스크립트이고 4초의 로드시간이 걸린다.
스크립트 부분이 리스트의 마지막에 있음에도 불구하고 IE에서
가장 처음 다운로드된다.
만약 스크립트코드를 포함한다면 stylesheeets (ex:getElementsByClassName등)로부터 적용된 스타일들에 의존한다면 예상할 수 없는 결과들이 일어날것이다.
왜냐하면 개발자들이 스크립트를 맨 마지막목록에 넣었음에도 불구하고
style이 로드되기 이전에 먼저 로드되기 때문이다.
6. Link-Link
<link
rel='stylesheet' type='text/css' href='a.css'>
<link
rel='stylesheet' type='text/css' href='b.css'>
위와같이 link를
사용한 스타일시트 사용방법이 가장 안전하다. Link를 이용한다면 모든 브라우져에서의 병행 다운로드를 보장한다. 아래 이미지를 보면 Link를 사용하여 개발자가 원하는대로 순서대로 다운로드되는 것을 보장한다.