文由掘金@天行天忌授权发布,前端晚间课对其内容进行微改。
HTML,超文本标记语言,是一种用于创建网页的标准标记语言。自从引入 HTML 以来,它就一直用于构建互联网。与 JavaScript 和 CSS 一起,HTML 构成前端开发的三剑客。
尽管许多新技术使网站创建过程变得更简单、更高效,但 HTML 始终是核心。随着 HTML5 的普及,在 2014 年,这种标记语言发生了很多变化,变得更加友好,浏览器对新标准的支持热度也越来越高。而HTML并不止于此,还在不断发生变化,并且可能会获得一些特性来证明对 HTML6 的命名更改是合理的。
该元素<dialog> 将随 HTML6 一起提供。它被认为等同于用 JavaScript 开发的模态,并且已经标准化,但只有少数浏览器完全支持。但这种现象会改变,很快它将在所有浏览器中得到支持。
这个元素在其默认格式下,只会将光标显示在它所在的位置上,但可以使用 JavaScript 打开模式。
<dialog>
<form method="dialog">
<input type="submit" value="确定" />
<input type="submit" value="取消" />
</form>
</dialog>
在默认形式下,该元素创建一个灰色背景,其下方是非交互式内容。
可以在 <dialog> 其中的表单上使用一种方法,该方法将发送值并将其传递回自身 <dialog>。
总的来说,这个标签在用户交互和改进的界面中变得有益。
可以通过更改 <dialog> 标签的 open 属性以控制打开和关闭。
<dialog open>
<p>组件内容</p>
</dialog>
FutureClaw 杂志主编 Bobby Mozumder 建议:
将锚元素链接到 JSON/XML、API 端点,让浏览器在内部将数据加载到新的数据结构中,然后浏览器将 DOM 元素替换为根据需要加载的任何数据。初始数据(以及标准错误响应)可以放在标题装置中,如果需要,可以稍后替换。
据他介绍,这是单页应用程序网页设计模式,可以提高响应速度和加载时间,因为不需要加载 JavaScript。
这个是一个比较有意思的提案,就有点类似我们以前没有做前后端分离之前的混合编程的模式,HTML变成模板语言,通过JSON API请求数据,不一样的是变成浏览器来默认解析,浏览器内部加载数据到新的数据结构中,然后浏览器将按需加载到的数据替换成 DOM 元素。
大家可以看一下InfoQ上的这篇文章《针对非正式 HTML6 提案“无需 JavaScript 的单页应用”引发的论战》,了解更多!
https://www.infoq.cn/article/2015/03/html6-without-javascript
HTML6 爱好者相信即将到来的更新将允许浏览器调整图像大小以获得更好的观看体验。
每个浏览器都难以呈现相对于设备和屏幕尺寸的最佳图像尺寸,不幸的是,src 标签 img 在处理这个问题时不是很有效。
这个问题可以通过一个新标签 <srcset> 来解决,它使浏览器在多个图像之间进行选择的工作变得更加容易。
将可用库引入 HTML6 绝对是提高开发效率的重要一步。
很多时候,需要在互联网上定义一般信息,而这些一般信息可以是任何公开的信息,例如电话号码、姓名、地址等。微格式是能够定义一般数据的标准。微格式可以增强设计者的能力,并可以减少搜索引擎推断公共信息所需的努力。
尽管标签<ul>、<ol>非常有用,但在某些情况下仍有一些不足之处。可以处理交互元素的标签将是一个不错的选择。
这就是创建标签 <menu> 的驱动力,它可以处理按钮驱动的列表元素。
<menu type="toolbar">
<li><button>个人信息</button></li>
<li><button>系统设置</button></li>
<li><button>账号注销</button></li>
</menu>
因此 <menu>,除了能够像普通列表一样运行之外,还可以增强 HTML 列表的功能。
虽然HTML5在安全性方面还不错,浏览器和网络技术也提供了合理的保护。毫无疑问,在身份验证和安全领域还有很多事情可以做。如密钥可以异地存储;这将防止不受欢迎的人访问并支持身份验证。使用嵌入式密钥而不是 cookie,使数字签名更好等。
HTML6 允许以更好的方式使用设备上的相机和媒体。将能够控制相机、它的效果、模式、全景图像、HDR 和其他属性。
没有什么是完美的,HTML 也不是完美的,所以 HTML 规范可以做很多事情来使它更好。应该对一些有用的规范进行标准化,以增强 HTML 的能力。小的变化已经开始推出。如增强蓝牙支持、p2p 文件传输、恶意软件保护、云存储集成,下一个 HTML 版本可以考虑一下。
者:刘小夕
转发链接:https://mp.weixin.qq.com/s/aEbqUt3zSnq8EjdBtkBcpw
在PC端用.NET开发一个蓝牙下载的程序。实现在PC上查找周围的蓝牙设备(主要是手机),并将PC上的文件通过蓝牙传输到手机上。目前我采用的是OpenNETCF.Net.Bluetooth,能够正常发现周围的蓝牙设备,手机也能够正常进行蓝牙连接并接收文件。
1、查找周围蓝牙设备
BluetoothClient bc=new BluetoothClient();
BluetoothDeviceInfo[] bdi;
bdi=bc.DiscoverDevices(10);//查找周围最多10个蓝牙设备
if (bdi.Length==0)
{
this.ShowErrMsg("请确认您的蓝牙已开启!");
return;
}
2、打开数据流
#region OBEXOpenStream
public bool OBEXOpenStream(string BTMAC)
{
// serial port UUID
Guid spguid=OpenNETCF.Net.Bluetooth.BluetoothService.ObexObjectPush;
OpenNETCF.Net.BluetoothAddress btaddress=OpenNETCF.Net.BluetoothAddress.Parse(BTMAC);
client=new OpenNETCF.Net.Sockets.BluetoothClient();
// define endpoint
OpenNETCF.Net.BluetoothEndPoint endpoint=new OpenNETCF.Net.BluetoothEndPoint(btaddress, spguid);
try
{
//open socket
client.Connect(endpoint);
}
catch
{
//unable to connect (server not listening on spguid)
return false;
}
//connect socket
stream=client.GetStream();
return true;
}
#endregion
3、配对连接
private bool OBEXConnect()
{
//send client request
byte[] ConnectPacket=new byte[7];
ConnectPacket[0]=0x80; // Connect
ConnectPacket[1]=0x00; // Packetlength Hi Byte
ConnectPacket[2]=0x07; // Packetlength Lo Byte
ConnectPacket[3]=0x10; // Obex v1
ConnectPacket[4]=0x00; // no flags
ConnectPacket[5]=0x20; // 8k max packet size Hi Byte
ConnectPacket[6]=0x00; // 8k max packet size Lo Byte
stream.Write(ConnectPacket, 0, ConnectPacket.Length);
//listen for server response
byte[] ReceiveBufferA=new byte[3];
stream.Read(ReceiveBufferA, 0, 3);
if (ReceiveBufferA[0]==160) // 0xa0
{
//success, decode rest of packet
int plength=(0xff * ReceiveBufferA[1]) + ReceiveBufferA[2]; //length of packet is...
//listen for rest of packet
byte[] ReceiveBufferB=new byte[plength - 3];
stream.Read(ReceiveBufferB, 0, plength - 3);
int obver=ReceiveBufferB[0]; //server obex version (16=v1.0)
int cflags=ReceiveBufferB[1]; //connect flags
int maxpack=(0xff * ReceiveBufferB[2]) + ReceiveBufferB[3]; //max packet size
return true;
}
else
{
return false;
}
}
4、发送文本内容
//send client request, start put
string tName="BRT优惠卷.txt";
string tType="";
string tFileContent="优惠卷内容:" + this.txtContent.Text.Trim();
int result=OBEXRequest("PUT", tName, tType, tFileContent);
if (result==160)
{
SendSuccess=true;
}
*请认真填写需求信息,我们会在24小时内与您取得联系。