分类 web前端 下的文章

js代码特殊的加载机制

利用图片加载js代码
https://imququ.com/post/code2png-encoder.html

利用零宽度字符隐藏代码
http://ucren.com/blog/archives/549
https://www.cnblogs.com/luanshixia/archive/2015/05/07/ghost_zwsp.html

利用图片加载js代码引用非https链接
https://imququ.com/post/use-image-to-transfer-data.html

CSS实现分隔线中间带文字的方法,取代fieldset-legend

小小分隔线 单标签实现


小小分隔线 巧用色实现


小小分隔线 inline-block实现


小小分隔线 浮动来实现


———————————小小分隔线 字符来实现————————————


<div class="demo-container demo">
<style type="text/css">
.demo{
    width: 600px;
    margin:10px;
}
.line_01{
    padding: 0 20px 0;
    margin: 20px 0;
    line-height: 1px;
    border-left: 200px solid #ddd;
    border-right: 200px solid #ddd;
    text-align: center;
}
.line_02{
    height: 1px;
    border-top: 1px solid #ddd;
    text-align: center;
}
.line_02 span{
    position: relative;
    top: -12px;
    background: #fff;
    padding: 0 20px;
}
.line_03{
    width:600px;
}
.line_03 b{
    background: #ddd;
    margin-top: 4px;
    display: inline-block;
    width: 180px;
    height: 1px;
    _overflow: hidden;
    vertical-align: middle;
}
.line_03 span{
    display: inline-block;
    width: 220px;
    vertical-align: middle;
text-align: center;
}
.line_04{
    width:600px;
}
.line_04{
    overflow: hidden;
    _zoom: 1;
}
.line_04 b{
    background: #ddd;
    margin-top: 12px;
    float: left;
    width: 26%;
    height: 1px;
    _overflow: hidden;
}
.line_04 span{
    padding: 0 10px;
    width: 32%;
    float: left;
    text-align: center;
}
.line_05{
    letter-spacing: -1px;
    color: #ddd;
}
.line_05 span{
    letter-spacing: 0;
    color: #222;
    margin:0 20px;
}
</style>

<div class="line_01">小小分隔线 单标签实现</div>
<br>
<br>
<div class="line_02"><span>小小分隔线 巧用色实现</span></div>
<br>
<br>
<div class="line_03"><b></b><span>小小分隔线 inline-block实现</span><b></b></div>
<br>
<br>
<div class="line_04"><b></b><span>小小分隔线 浮动来实现</span><b></b></div>
<br>
<br>
<div class="line_05">———————————<span>小小分隔线 字符来实现</span>————————————</div>
<br>
<br>
</div>

DNS预获取 dns-prefetch 提升页面载入速度

DNS Prefetch,即DNS预获取,是前端优化的一部分。一般来说,在前端优化中与 DNS 有关的有两点: 一个是减少DNS的请求次数,另一个就是进行DNS预获取

DNS 作为互联网的基础协议,其解析的速度似乎很容易被网站优化人员忽视。现在大多数新浏览器已经针对DNS解析进行了优化,典型的一次DNS解析需要耗费 20-120 毫秒,减少DNS解析时间和次数是个很好的优化方式。DNS Prefetching 是让具有此属性的域名不需要用户点击链接就在后台解析,而域名解析和内容载入是串行的网络操作,所以这个方式能 减少用户的等待时间,提升用户体验

默认情况下浏览器会对页面中和当前域名(正在浏览网页的域名)不在同一个域的域名进行预获取,并且缓存结果,这就是隐式的 DNS Prefetch。如果想对页面中没有出现的域进行预获取,那么就要使用显示的 DNS Prefetch 了。

目前大多数浏览器已经支持此属性,支持版本如下:

列表项目

  • Safari: 5+
  • Chrome: All
  • Firefox: 3.5+
  • Opera: Unknown
  • IE: 9+ (called “Pre-resolution” on blogs.msdn.com)

其中 Chrome 和 Firefox 3.5+ 内置了 DNS Prefetching 技术并对DNS预解析做了相应优化设置。所以 即使不设置此属性,Chrome 和 Firefox 3.5+ 也能自动在后台进行预解析 。

目前很多大型站点也应用了这一优化,例如:

淘宝:
taobaodnsmeta.png

支付宝:
zhifubaodnsmeta.png

网易:
wangyidnsmeta.png

DNS Prefetch 应该尽量的放在网页的前面,推荐放在 后面。具体使用方法如下:

<meta http-equiv="x-dns-prefetch-control" content="on">
<link rel="dns-prefetch" href="//www.itechzero.com">
<link rel="dns-prefetch" href="//api.share.baidu.com">
<link rel="dns-prefetch" href="//bdimg.share.baidu.com">

需要注意的是,虽然使用 DNS Prefetch 能够加快页面的解析速度,但是也不能滥用,因为有开发者指出 禁用DNS 预读取能节省每月100亿的DNS查询 。

只需要在用户在第一次打开网站时使用DNS Prefetch,没有必要每个页面都使用DNS Prefetch,否则就是重复DNS读取了,反而还无形中增加了DNS查询的次数,效果适得其反。(此处有疑)

如果需要禁止隐式的 DNS Prefetch,可以使用以下的标签:

<meta http-equiv="x-dns-prefetch-control" content="off">

文章主要来源前端优化一(已打不开)

参考:
事半功倍:你应该知道的HTML5五大特性
减少域名DNS解析时间将网页加载速度提升新层次-DNS缓存/预读取/拆分域名
浏览器的加载过程

web浏览器跨域

什么是跨域

http://bigdots.github.io/2015/12/23/实现跨域/

跨域请求了什么内容会被阻止

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS

谁请求了跨域,谁阻止了跨域

https://lengzzz.com/note/cross-origin-http-request

有什么方法跨域

http://tech.jandou.com/cross-domain.html

利用Access-Control-Allow-Origin响应头解决跨域请求原理

COR的实现标准就是CORS协议。

对于浏览器来说,COR请求都是Javascript发起的,COR请求有两种:

1、简单的COR请求,它可以直接向外域资源发起请求。它必须仅仅包含简单的方法和头,具体定义看https://www.w3.org/TR/cors/#resource-requests。

2、如果COR包含复杂的方法和头,它需要发出预检验(Preflight)请求,它先向资源服务器发出一个OPTIONS方法、包含“Origin”头的请求。该回复可以控制COR请求的方法,HTTP头以及验证等信息。只有该请求获得允许以后,才会发起真实的外域请求。
https://blog.csdn.net/hehexiaoxia/article/details/61916737
https://blog.csdn.net/enter89/article/details/51205752