템플릿, Shadow DOM 및 사용자 정의 요소를 사용하면 UI 구성 요소를 그 어느 때보다 쉽게 만들 수 있습니다. 하지만 HTML, CSS, JavaScript 같은 리소스는 여전히 하나씩 로드해야 하기 때문에 매우 비효율적입니다.
중복 종속성을 제거하는 것도 간단하지 않습니다. 예를 들어 이제 jQuery UI 또는 Bootstrap을 로드하려면 JavaScript, CSS 및 웹 글꼴에 대해 별도의 태그를 추가해야 합니다. 웹 구성 요소가 여러 종속성을 적용하면 상황이 더 복잡해집니다.
HTML 가져오기를 사용하면 이러한 리소스를 결합된 HTML 파일로 로드할 수 있습니다.
HTML을 사용하여 가져오기
HTML 파일을 로드하려면 rel 속성이 import이고 herf 속성이 HTML 파일의 경로인 링크 태그를 추가해야 합니다. 예를 들어, index.html에 component.html을 로드하려는 경우:
index.html
- 링크 rel="가져오기" href="comComponent.html" >
파일을 HTML로 가져올 수 있습니다(번역자 주: 이 기사에서는 "가져온 HTML"을 "HTML 가져오기 파일"로, "원본 HTML"을 "HTML 기본 파일"로 번역합니다. 예를 들어 index.html은 HTML입니다. 파일에서 component.html은 HTML 가져오기 파일입니다.) 일반 HTML에 리소스를 추가하는 것과 마찬가지로 스크립트, 스타일 시트 및 글꼴을 포함한 리소스를 추가합니다.
컴포넌트.html
- 링크 rel="스타일시트" href="css/style.css">
- 스크립트 src="js/ script.js">script>
doctype, html, head, body 태그는 필요하지 않습니다. HTML 가져오기는 가져오는 문서를 즉시 로드하고, 문서의 리소스를 구문 분석하고, 스크립트가 있는 경우 실행합니다.
실행 순서
브라우저가 HTML 문서를 구문 분석하는 방식은 선형입니다. 즉, HTML 상단의 스크립트가 하단보다 먼저 실행된다는 의미입니다. 또한 브라우저는 일반적으로 후속 코드를 구문 분석하기 전에 JavaScript 코드가 실행될 때까지 기다립니다.
스크립트가 HTML 렌더링을 방해하지 않도록 하려면 태그에 비동기 또는 연기 속성을 추가할 수 있습니다(또는 페이지 하단에 스크립트 태그를 넣을 수도 있습니다). defer 속성은 모든 페이지가 구문 분석될 때까지 스크립트 실행을 지연합니다. async 속성을 사용하면 브라우저가 HTML 렌더링을 방해하지 않도록 스크립트를 비동기적으로 실행할 수 있습니다. 그렇다면 HTML 가져오기는 어떻게 작동하나요?
HTML 가져오기 파일의 스크립트는 defer 속성을 포함하는 것과 동일합니다. 예를 들어 다음 예에서 index.html은 script1.js와 script2.js를 먼저 실행한 다음 script3.js를 실행합니다.
index.html
- 링크 rel="가져오기" href="comComponent.html"> // 1.
- 제목>가져오기 예시제목>
- 스크립트 src="script3. js">스크립트> // 4.
컴포넌트.html
- 스크립트 src="js/script1.js ">스크립트> // 2.
- 스크립트 src="js/ script2.js">script> // 3.
1.재index.html 中加载comComponent.html并等待执行
2.执行comComponent.html중적인script1.js
3.执行完script1.js后执行comComponent.html중적인script2.js
4.执行完 script2.js继而执行index.html中的script3.js
주의하세요, 如果给link[rel="import"] 添加async属性, HTML导入会把它当做含有async属性的脚本来对待.载,这意味着HTML 导入HTML은 매우 중요하지 않습니다.导入
比如,你不能从http://webcomComponents.org/向 http://example.com/ 导入HTML 文件。为了绕过这个限조제,可以使用CORS(跨域资源共享)。想视解CORS,请看这篇文章。
HTML导入文件中의 창과 문서对象
이전 화면에서는 HTML문서를 통해 다른 페이지의 이동이 가능하며, 의도하지 않은 HTML이 표시됩니다.需要写一些JavaScript代码来帮忙。
- var link = document.querySelector('link[rel ="가져오기"]')
- link.addEventListener('load', function(e) {
- var importedDoc = link.import; // importDoc은 component.html 아래의 문서를 가리킵니다.
- })
컴포넌트.html
- var mainDoc = 문서.currentScript.ownerDocument // mainDoc은 component.html 아래의 문서를 가리킵니다.
컴포넌트.html
- var mainDoc = 문서._currentScript.ownerDocument // mainDoc은 component.html 아래의 문서를 가리킵니다.
document._currentScript = document._currentScript || document.currentScript;
성능 고려 사항
HTML 가져오기를 사용하면 리소스를 정리할 수 있다는 장점이 있지만, 이러한 리소스를 로드할 때 일부 추가 HTML 파일 사용으로 인해 헤더가 너무 커진다는 의미이기도 합니다. 고려해야 할 몇 가지 사항이 있습니다.
기본 HTML 파일이 여러 가져오기 파일에 의존하고 가져오기 파일에 동일한 라이브러리가 포함되어 있으면 어떻게 되나요? 예를 들어 가져오기 파일에서 jQuery를 로드하려는 경우 각 가져오기 파일에 jQuery를 로드하는 스크립트 태그가 포함되어 있으면 jQuery가 두 번 로드되고 두 번 실행됩니다.
index.html
- 링크 rel="가져오기" href="comComponent1.html">
- 링크 rel="가져오기" href="comComponent2.html">
- 스크립트 src="js/jquery.js ">스크립트>
comComponent2.html
HTML 가져오기는 이 문제를 자동으로 해결합니다.
스크립트 태그를 두 번 로드하는 것과 달리 HTML 가져오기는 더 이상 이미 로드된 HTML 파일을 로드하고 실행하지 않습니다. 이전 코드를 예로 들면, jQuery를 로드하는 스크립트 태그를 HTML 가져오기 파일에 패키징하면 jQuery가 한 번만 로드되고 실행됩니다.
하지만 문제가 있습니다. 로드할 파일을 추가했습니다. 늘어나는 파일 수를 처리하는 방법은 무엇입니까? 다행히도 이 문제를 해결하기 위해 vulcanize라는 도구가 있습니다.
네트워크 요청 병합
Vulcanize는 여러 HTML 파일을 하나의 파일로 병합하여 네트워크 연결 수를 줄일 수 있습니다. npm으로 설치하고 명령줄에서 사용할 수 있습니다. 일부 작업을 호스팅하기 위해 grunt 및 gulp를 사용할 수도 있으며, 이 경우 빌드 프로세스의 일부로 경화할 수 있습니다.
종속성을 해결하고 index.html에서 가져오기 파일을 병합하려면 다음 명령을 사용하세요.
이 명령을 실행하면 index.html의 종속성이 구문 분석되고 vulcanized.html이라는 병합된 HTML 파일이 생성됩니다. 가황에 대한 자세한 내용은 여기를 참조하세요.
참고: 향후 파일 연결 및 병합을 제거하기 위해 http2의 서버 푸시 기능이 고려되고 있습니다.
템플릿, Shadow DOM, 맞춤 요소 및 HTML 가져오기 결합
이 기사 시리즈의 코드에 HTML 가져오기를 사용해 보겠습니다. 이전에 이러한 기사를 본 적이 없을 수도 있으므로 먼저 설명하겠습니다. 템플릿을 사용하면 사용자 정의 요소의 콘텐츠를 선언적으로 정의할 수 있습니다. Shadow DOM을 사용하면 요소의 스타일, ID 및 클래스가 해당 요소에만 적용될 수 있습니다. 사용자 정의 요소를 사용하면 HTML 태그를 사용자 정의할 수 있습니다. 이를 HTML 가져오기와 결합하면 사용자 정의 웹 구성 요소가 모듈화되고 재사용 가능해집니다. Link 태그만 추가하면 누구나 사용할 수 있습니다.
x-컴포넌트.html
- 템플릿 ID="템플릿" >
- 스타일>
- ...
- 스타일>
- div id="컨테이너" >
- img src="http: //webcomComponents.org/img/logo.svg">
- 콘텐츠 선택="h1" >콘텐츠>
- div>
- 템플릿>
- 스크립트>
- // 이 요소는 index.html에 등록됩니다.
- // 여기서 '문서'는 index.html에 있는 문서를 의미하기 때문입니다.
- var XComponent = document.registerElement('x-comComponent', {
- 프로토타입: Object.create(HTMLElement.prototype, {
- createdCallback: {
- 값: function() {
- var root = this.createShadowRoot();
- var 템플릿 = 문서.querySelector('#template');
- var clone = document.importNode(template.content, true);
- root.appendChild(복제);
- }
- }
- })
- });
- 스크립트>
index.html
- ...
- 링크 rel="가져오기" href="x-comComponent.html">
- 머리>
- 몸>
- x-컴포넌트>
- h1>커스텀 요소입니다h1>
- x-컴포넌트>
- ...
x-comComponent.html의 문서 개체는 index.html과 동일하므로 까다로운 코드를 작성할 필요가 없으며 자동으로 등록됩니다.
지원 브라우저
Chrome과 Opera는 HTML 가져오기를 지원하며 Firefox는 2014년 12월까지 이를 지원하지 않습니다. (Mozilla는 Firefox가 가까운 미래에 HTML 가져오기를 지원할 계획이 없다고 밝혔으며 먼저 ES6 모듈이 어떻게 작동하는지 이해해야 한다고 주장했습니다. 구현됩니다).
chromestatus.com 또는 caniuse.com으로 이동하여 브라우저가 HTML 가져오기를 지원하는지 확인할 수 있습니다. 다른 브라우저에서 HTML 가져오기를 사용하려면 webcomComponents.js(이전의 platform.js)를 사용할 수 있습니다.
관련자료
HTML 가져오기에 대한 내용은 여기까지입니다. HTML 가져오기에 대해 자세히 알아보려면 다음을 방문하세요.
HTML Imports: 웹용 #include – HTML5Rocks
HTML Imports 사양

H5 및 HTML5는 다른 개념입니다. HTML5는 새로운 요소 및 API를 포함하는 HTML의 버전입니다. H5는 HTML5를 기반으로 한 모바일 애플리케이션 개발 프레임 워크입니다. HTML5는 브라우저를 통해 코드를 구문 분석하고 렌더링하는 반면 H5 응용 프로그램은 컨테이너를 실행하고 JavaScript를 통해 기본 코드와 상호 작용해야합니다.

HTML5의 주요 요소에는 최신 웹 페이지를 작성하는 데 사용되는 ,,,,, 등이 포함됩니다. 1. 헤드 컨텐츠 정의, 2. 링크를 탐색하는 데 사용됩니다. 3. 독립 기사의 내용을 나타내고, 4. 페이지 내용을 구성하고, 5. 사이드 바 컨텐츠 표시, 6. 바닥 글을 정의하면, 이러한 요소는 웹 페이지의 구조와 기능을 향상시킵니다.

HTML5와 H5 사이에는 차이가 없으며, 이는 HTML5의 약어입니다. 1.HTML5는 HTML의 다섯 번째 버전으로 웹 페이지의 멀티미디어 및 대화식 기능을 향상시킵니다. 2.H5는 종종 HTML5 기반 모바일 웹 페이지 또는 응용 프로그램을 참조하는 데 사용되며 다양한 모바일 장치에 적합합니다.

HTML5는 W3C에 의해 표준화 된 하이퍼 텍스트 마크 업 언어의 최신 버전입니다. HTML5는 새로운 시맨틱 태그, 멀티미디어 지원 및 양식 향상을 도입하여 웹 구조, 사용자 경험 및 SEO 효과를 개선합니다. HTML5는 웹 페이지 구조를 더 명확하게하고 SEO 효과를 더 좋게하기 위해, 등 등과 같은 새로운 시맨틱 태그를 소개합니다. HTML5는 멀티미디어 요소를 지원하며 타사 플러그인이 필요하지 않으므로 사용자 경험을 향상시키고 속도를로드합니다. HTML5는 양식 함수를 향상시키고 사용자 경험을 향상시키고 양식 검증 효율성을 향상시키는 새로운 입력 유형을 도입합니다.

깨끗하고 효율적인 HTML5 코드를 작성하는 방법은 무엇입니까? 답은 태그, 구조화 된 코드, 성능 최적화 및 일반적인 실수를 피함으로써 일반적인 실수를 피하는 것입니다. 1. 코드 가독성 및 SEO 효과를 향상시키기 위해 시맨틱 태그 등을 사용하십시오. 2. 적절한 계약과 의견을 사용하여 코드를 구성하고 읽을 수 있도록하십시오. 3. CDN 및 압축 코드를 사용하여 불필요한 태그를 줄임으로써 성능을 최적화합니다. 4. 태그가 닫히지 않은 것과 같은 일반적인 실수를 피하고 코드의 유효성을 확인하십시오.

H5는 멀티미디어 지원, 오프라인 스토리지 및 성능 최적화로 웹 사용자 경험을 향상시킵니다. 1) 멀티미디어 지원 : H5 및 요소는 개발을 단순화하고 사용자 경험을 향상시킵니다. 2) 오프라인 스토리지 : WebStorage 및 IndexedDB는 오프라인으로 사용하여 경험을 향상시킵니다. 3) 성능 최적화 : 웹 워즈 및 요소는 성능을 최적화하여 대역폭 소비를 줄입니다.

HTML5 코드는 태그, 요소 및 속성으로 구성됩니다. 1. 태그는 컨텐츠 유형을 정의하고 다음과 같은 각도 브래킷으로 둘러싸여 있습니다. 2. 요소는 컨텐츠와 같은 시작 태그, 내용 및 엔드 태그로 구성됩니다. 3. 속성 시작 태그에서 키 값 쌍을 정의하고 기능을 향상시킵니다. 웹 구조를 구축하기위한 기본 단위입니다.

HTML5는 현대적인 웹 페이지를 구축하는 핵심 기술로 많은 새로운 요소와 기능을 제공합니다. 1. HTML5는 웹 페이지 구조 및 SEO를 향상시키는 의미 론적 요소를 소개합니다. 2. 멀티미디어 요소를 지원하고 플러그인없이 미디어를 포함시킵니다. 3. 양식은 새로운 입력 유형 및 검증 속성을 향상시켜 검증 프로세스를 단순화합니다. 4. 웹 페이지 성능 및 사용자 경험을 향상시키기 위해 오프라인 및 로컬 스토리지 기능을 제공합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기
