- seo针对搜索引擎优化
搜索引擎在检测网站访问数量上升快速时,就会收纳进它的索引库中。
其中title就是搜索引擎展示的内容,语义化标签和良好的结构在搜索引擎爬你的页面时都会方便很多,对你的页面排在前面有加权。
再就是head里的<meta name="keywords" content="搜索的关键词条" />``<meta name="description" content="搜索页面的简介" />
- CSS
- CSS技巧
让文字居中,但最后一行要靠左开始--->外面一个大盒子设置居中,里面一个小盒子设置靠左。
做一个图片提示,鼠标挪上去就有提示弹出--->用attr(alt)获取提示信息,用img:hover::after改变鼠标挪上去的样式。
设置定位为absolute时,定位元素相对于最近的非 static 祖先元素定位,不存在时相对于html大小是可视窗口大小。
改变鼠标挪上去显示的图片--->img:hover {content:url(https://wx1.sinaimg.cn/mw690/6af43228ly1g1wes9jmrkj20xc0xcqi0.jpg);}
伪元素中的content: "1234 uu 你马没了 1234";
空格相当于回车换行,英文字母和数字之间都不会换行,中文会换行,可以利用这个特点和outline画出不同的形状
- 源码分析
- jquery $函数分析
window.onload 会在所有资源加载完加载。
而 DOMContentLoaded 是js最佳也是最快执行的地方,它会在结构搭好的时候就开始执行,不会受其他图片,网络请求资源的影响。
document.addEventListener('DOMContentLoaded',function() {
console.log("DOM ready");
// js开始的地方
});
$()函数可以传入不同的数据类型,而js中并没有实质上的多态,所以一开始就判断数据类型搞分支,又因为$不能继承(会影响其他情况),所以建一个jQueryEle类,代用jQueryEle原型加属性,达到实现的功能,并返回。
其构造函数要有个属性指向dom结点。
- js ajax
原生js里要用ajax都是建XMLHttpRequest实例,不支持XMLHttpRequest的IE8及以下的IE7IE6那些就用ActiveXObject("Microsoft.XMLHttp"),yjr.open("get","./mock.json",true);//false->同步,设置请求头setRequestHeader(),发送send()
5个readyState和一堆status代码(404,403那些)
设置同步时,网页的用户体验不好,而用异步时,会带来一些未加载出导致的错误,而用回调函数解决,功能多了会陷入回调地狱,有性能问题。 - Promise
上面说到异步造成问题,用 Promise 就可以解决,其主要思想其实就是缕清楚运行顺序(与载入延迟无关),还有给一个未加载出的选择(加载失败不再按原代码运行)。
用法是将返回的参数替换成一个 Promise 实例(之后还有操作的每一个都要替代成Promise实例),并在其中把正常运行的结果用 resolve 方法传递,错误运行的就用 reject 方法传递。
除第一个函数外,在函数调用的时候就按顺序用then方法调用(then里的传值对象是函数类型的),函数之间的参数传递会自动填进去,填的就是用 resolve 方法传递的对象。
Promise实例的 catch 方法里的传值对象也是函数类型,是指加载失败的操作。
all 方法可以做到数组里的操作全部同时开始执行,并等待最慢的操作执行后才结束。(它的成功返回值是数组里的所有方法里的resolve组成的数组)
race 方法也可以做到数组里的操作全部同时开始执行,但是它会在第一个最快的操作执行完之后就继续后续操作。(返回值也理所当然是第一个最快的那个)