HTML5 Template in Action
HTML5 Template in Action
https://developer.mozilla.org/es/docs/Web/HTML/Elemento/template
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template
https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5
https://developer.mozilla.org/en-US/docs/Web/CSS/@import
https://www.html5rocks.com/en/tutorials/webcomponents/template/
https://www.html5rocks.com/zh/tutorials/webcomponents/template/
"use strict";
/**
 *
 * @author xgqfrms
 * @license MIT
 * @copyright xgqfrms
 * @description HTML5 Template
 * @augments
 * @example
 *
 */
/*
<template>
    <h2>Flower</h2>
    <img src="https://www.w3schools.com/tags/img_white_flower.jpg">
</template>
<template>
    <div class="myClass">I like: </div>
</template>
*/
const showContent = () => {
    // let temp = document.getElementsByTagName("template")[0],
    let temp = document.querySelector(`[data-tempalte="tempalte-img"]`),
        clone = temp.content.cloneNode(true);
    document.body.appendChild(clone);
};
const templateGenerator = (datas = [], debug = false) => {
    let result = ``;
    // let temp = document.getElementsByTagName("template")[1],
    let temp = document.querySelector(`[data-tempalte="tempalte-links"]`),
        item = temp.content.querySelector("div");
    for (let i = 0; i < datas.length; i++) {
        let a = document.importNode(item, true);
        a.textContent += datas[i];
        document.body.appendChild(a);
    }
    return result;
};
const arr = ["Audi", "BMW", "Ford", "Honda", "Jaguar", "Nissan"];
if (document.createElement("template").content) {
    console.log("YES! The browser supports the template element");
    templateGenerator(arr);
    setTimeout(() => {
        showContent();
    }, 0);
} else {
    console.error("No! The browser does not support the template element");
}
blogs
https://www.w3schools.com/html/html5_intro.asp
https://www.w3schools.com/tags/tag_template.asp
- The - <template>tag holds its content hidden from the client.
- Content inside a - <template>tag will not be rendered.
- The content can be visible and rendered later by using - JavaScript.
https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_template2
<button onclick="showContent()">Show template</button>
<template>
      <h2>Flower</h2>
      <img src="https://www.w3schools.com/tags/img_white_flower.jpg" width="214" height="204">
</template>
const showContent = () => {
    let temp = document.getElementsByTagName("template")[0],
        clone = temp.content.cloneNode(true);
    document.body.appendChild(clone);
};
https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_template3


SSE: Server-Sent Event
https://www.w3schools.com/html/html5_serversentevents.asp
EventSource
Check
Server-Sent EventsSupport
Create a new EventSource object, and specify the URL of the page sending the updates
if(typeof(EventSource) !== "undefined") {
    // Yes! Server-sent events support!
    var source = new EventSource("demo_sse.php");
    source.onmessage = function(event) {
        document.getElementById("result").innerHTML += event.data + "<br>";
   };
} else {
    // Sorry! No server-sent events support..
}
text/event-stream
Server-Side Code Example
For the example above to work, you need a server capable of sending data updates (like PHP or ASP).
The server-side event stream syntax is simple. Set the "Content-Type" header to "text/event-stream". Now you can start sending event streams.
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>
https://www.w3schools.com/html/tryit.asp?filename=tryhtml5_sse
"use strict";
/**
 *
 * @author xgqfrms
 * @license MIT
 * @copyright xgqfrms
 * @description HTML5 Template
 * @augments
 * @example
 *
 */
/*
<template>
    <h2>Flower</h2>
    <img src="https://www.w3schools.com/tags/img_white_flower.jpg">
</template>
<template>
    <div class="myClass">I like: </div>
</template>
*/
const showContent = () => {
    // let temp = document.querySelector(`[data-tempalte="tempalte-img"]`);
    let temp = document.getElementsByTagName("template")[0],
        clone = temp.content.cloneNode(true);
    document.body.appendChild(clone);
};
const templateGenerator = (datas = [], debug = false) => {
    let result = ``;
    // do something...
    //get the template element:
    let temp = document.getElementsByTagName("template")[1];
    // let temp = document.querySelector(`[data-tempalte="tempalte-links"]`);
    //get the DIV element from the template:
    let item = temp.content.querySelector("div");
    //for each item in the array:
    for (let i = 0; i < datas.length; i++) {
        //Create a new node, based on the template:
        let a = document.importNode(item, true);
        //Add data from the array:
        a.textContent += datas[i];
        //append the new node wherever you like:
        document.body.appendChild(a);
    }
    return result;
};
const arr = ["Audi", "BMW", "Ford", "Honda", "Jaguar", "Nissan"];
if (document.createElement("template").content) {
    console.log("YES! The browser supports the template element");
    templateGenerator(arr);
    setTimeout(() => {
        showContent();
    }, 0);
} else {
    console.error("No! The browser does not support the template element");
}
responsive-html5-web-templates
https://www.mockplus.com/blog/post/free-responsive-html5-web-design-templates
https://colorlib.com/wp/free-business-website-templates/
HTML5 Template in Action的更多相关文章
- [MODx] 1. Add Html5 template into the MODx
		1. Connet MODx by SSH: Go to the MODx cloud; Find you current user and right click selet Edit Cloud; ... 
- HTML5 template元素
		前言 转自http://www.zhangxinxu.com/wordpress/2014/07/hello-html5-template-tag/ 在单页面应用,我们对页面的无刷新有了更高的要求,H ... 
- HTML5 <template>标签元素简介
		一.HTML5 template元素初面 <template>元素,基本上可以确定是2013年才出现的.干嘛用的呢,顾名思意,就是用来声明是“模板元素”. 目前,我们在HTML中嵌入模板H ... 
- [转]HTML5 Day 4: Add Drop Down Menu to ASP.NET MVC HTML5 Template using CSS and jQuery
		本文转自:http://pietschsoft.com/post/2010/11/17/HTML5-Day-4-Add-DropDown-Menu-ASPNET-MVC-HTML5-Template- ... 
- HTML5 Canvas in Action
		HTML5 Canvas in Action canvas 图片处理 视频编辑工具 xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问! 
- Web Components & HTML5 & template & slot
		Web Components & HTML5 & template & slot https://developer.mozilla.org/en-US/docs/Web/HT ... 
- HTML5 <template>
		http://www.zhangxinxu.com/wordpress/2014/07/hello-html5-template-tag/ 
- HTML语义化:HTML5新标签——template
		一.前言 当我们使用String-base的模板引擎(如Handlebars.js等)时,要么就通过外部文件存放模板文本,需要时再通过XHR或script标签加载进来:要么通过<script t ... 
- HTML5中<template>标签的详细介绍
		HTML5中<template>标签的详细介绍(图文) 这篇文章主要介绍了HTML5中的template标签,是HTML5入门中的重要知识,需要的朋友可以参考 一.HTML5 templa ... 
随机推荐
- GIT常用命令:
			1.安装好Git之后,点击鼠标右键即可看到有Git bush选项,点击即可进入Git命令行操作. 2.使用命令: git config --global user.name "lyh&q ... 
- JVM虚拟机垃圾回收(GC)算法及优缺点
			一.什么是GC GC是jvm的垃圾回收,垃圾回收的规律和原则为: 次数上频繁收集新生区(Young) 次数上较少收集养老区(Old) 基本上不动永久区(Perm) 二.GC算法(分代收 ... 
- Why should I avoid blocking the Event Loop and the Worker Pool?
			Don't Block the Event Loop (or the Worker Pool) | Node.js https://nodejs.org/en/docs/guides/dont-blo ... 
- 苹果 M1 芯片 OpenSSL 性能测试
			Apple M1(MacBook Air 2020) type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md2 0.00 0.00 0.00 ... 
- vue开发中的"骚操作"
			前言 在与同事协作开发的过程中,见识到了不少"骚操作".因为之前都没用过,所以我愿称之为"高级技巧"! Vue.extend 在交互过程中,有个需求就是点击图标 ... 
- 利用Javascript制作网页特效(窗口特效)
			全屏显示窗口 利用fullscreen=yes可以制作全屏显示窗口. ①:在body标签内输入以下代码: <div align="center"> <input ... 
- GeoMesa Spark
			GeoMesa Spark 一.Spark JTS 1.1 示例 1.2配置 1.3 地理空间用户定义的类型和功能 1.4 geojson输出 1.5 Building 二.Spark Core 2. ... 
- centos6.5安装KVM,并在KVM中安装虚拟6.5系统
			=============================环境搭建================================================== 1.检查CPU信息 KVM 需要 ... 
- mysql高级day1
			Mysql高级-day01 MySQL高级课程简介 序号 Day01 Day02 Day03 Day04 1 Linux系统安装MySQL 体系结构 应用优化 MySQL 常用工具 2 索引 存储引擎 ... 
- Codeforces Round #594 (Div. 2) D1 - The World Is Just a Programming Task
			思路:枚举换的位置i,j 然后我们要先判断改序列能否完全匹配 如果可以 那我们就需要把差值最大的位置换过来 然后直接判断就行 
