PDF预览
遇到说pdf预览的,能力有限,原生还真没做到
只能借助插件实现了
前端预览PDF:PDFObject、PDF.js
遇到说pdf预览的,能力有限,原生还真没做到
只能借助插件实现了
前端预览PDF:PDFObject、PDF.js
HTML5 Speedtest Demo http://speedtest.fdossena.com/
https://www.speedtest.net/
https://test-ipv6.com/ 测试支持ipv6
网线买啥牌子的啊?
谈下网线,扁平线,六类和所谓的超六类,七类
信息来源于某省电信客服:
工信部对家庭宽带产品配置规范要求,
下行100M及以下的带宽需按照1:5 配置上行和下行速率;
下行100M以上带宽按照不低于30M配置上行。
AX200网卡
Intel AX200官网的简介
http://koolshare.cn/thread-161254-1-1.html
AX200网卡的TA编码。TA: K34403-001的已经被官方淘汰,新版本是TA: K34403-002。不急需的话还是等等吧。
https://wificard.bdw.to/
wifi 二维码
再谈Retina下1px的解决方案
移动端 Retina 屏幕 1px 边框问题
这里使用postcss-write-svg
举例
npm install postcss-write-svg --save-dev
npm install postcss-write-svg --save
<style scoped>
@svg 1px-border {
height: 2px;
@rect {
fill: var(--color, black);
width: 100%;
height: 50%;
}
}
.ex-font{
font-size:18px;
}
.ex-border{
border-bottom: 1px solid #ccc;
border-image: svg(1px-border param(--color black)) 2 2 stretch;
}
</style>
xx\build\webpack.base.conf.js
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: vueLoaderConfig
},
{
test : /\.(css|scss)$/,
use : ExtractTextPlugin.extract({
fallback: 'style-loader',
use : [
{
loader: 'css-loader',
options: {
minimize: 'production' !== process.env.NODE_ENV ? false : true,
}
},
{
loader: 'postcss-loader',
options: {
plugins: function () {
return [
require('postcss-write-svg')
];
}
}
},
{
loader: 'sass-loader',
options: {
outputStyle: 'expanded',
includePaths: [
ROOT_PATH,
]
}
},
],
}),
include : ROOT_PATH,
},
{
test: /\.js$/,
loader: ['babel-loader'],
exclude : /node_modules/,
include : ROOT_PATH,
},
{
test: /\.(png|jpg|gif|svg)$/,
loader: `url-loader?limit=10000&name=${ASSETS_DIR}/images/[name].[hash:8].[ext]`,
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: `url-loader?limit=10000&name=${ASSETS_DIR}/fonts/[name].[hash:8].[ext]`,
}
]
},
xx\.postcssrc.js
module.exports = {
"plugins": {
// to edit target browsers: use "browserlist" field in package.json
"autoprefixer": {},
"postcss-write-svg": {
utf8: false
},
}
}
《Canvas: Draw on the web》:国人写的 HTML5 Canvas 教程。
https://yuque.com/airing/canvas
“从零基础开始,到Canvas API,再到基本动画与高级动画的实现,还会介绍视音频的处理、移动应用,最后如果有时间会扩展说一说3D、多人应用、游戏制作等。
完全理解jQuery源代码,在前端行业算什么水平?
如何学习jQuery?
逐行分析 jQuery 源码的奥秘
逐行分析jQuery源码
jQuery源码解析(架构与依赖模块)
jQuery源码分析系列
jQuery1.6.1源码分析系列(停止更新)
https://github.com/mumuy/widget
A set of widgets based on jQuery&&javascript.
一套基于jquery或javascript的插件库 :
轮播、标签页、滚动条、下拉框、对话框、搜索提示、城市选择(城市三级联动)、日历等
jQuery插件开发模式
http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html
https://segmentfault.com/a/1190000007076651
jQuery One Page Nav
Owl Carousel 2 -支持触摸屏的响应式jQuery旋转木马插件
http://www.htmleaf.com/jQuery/Slideshow-Scroller/201502161387.html
$('body').on("input",'tags',function(e){});
动态添加事件后绑定此事件
使用前重写覆盖一下contains方法即可:
此处优化:contains不再区分大小写
jQuery.expr[':'].Contains = function(a, i, m) {
return jQuery(a).text().toUpperCase()
.indexOf(m[3].toUpperCase()) >= 0;
};
jQuery.expr[':'].contains = function(a, i, m) {
return jQuery(a).text().toUpperCase()
.indexOf(m[3].toUpperCase()) >= 0;
};
$("#statisticsViewList li").hide().find(".name").filter(":contains('"+name+"')").parents("li").show();
让jquery:contains选择器 忽略大小写
使用前重写覆盖一下contains方法即可:
<%--此处优化:contains不再区分大小写--%>
jQuery.expr[':'].Contains = function(a, i, m) { return jQuery(a).text().toUpperCase() .indexOf(m[3].toUpperCase()) >= 0; }; jQuery.expr[':'].contains = function(a, i, m) { return jQuery(a).text().toUpperCase() .indexOf(m[3].toUpperCase()) >= 0; };
$("#statisticsViewList li").hide().find(".name").filter(":contains('"+name+"')").parents("li").show();
jQuery的 $.ajax防止重复提交的两种方法(推荐)
依赖jQ
$.ajax({
type: 'POST',
url: 'url',
cache:false,
dataType: 'json',
data: {},
async: false,
beforeSend:function(){
//触发ajax请求开始时执行
//改变提交按钮上的文字并将按钮设置为不可点击
//加判断条件,使得不能提交
},
success: function (msg, textStatus)
{
//对上面的判断条件处理,使得能提交
},
error: function (textStatus)
{
},
complete: function(msg, textStatus)
{
}
});
Prefilters是一个预过滤器,在每个请求之前被发送和$.ajax()处理它们前处理。
options 是请求的选项
originalOptions 值作为提供给Ajax方法未经修改的选项,因此,没有ajaxSettings设置中的默认值
jqXHR 是请求的jqXHR对象
以上内容的核心思想是维护一个队列,发送请求时,将请求加入队列,请求响应后,从队列中清除,这就保证了在任一时刻只能有一个同样的请求发送.
局限性:仅仅是前台防止jQuery的ajax请求。对于非jquery的ajax请求,不起作用。因为使用的是jquery的ajaxPreFilter函数,仅仅对jquery的ajax请求有作用。
2)按钮每次点击都会向后端发送请求,下面的demo实现了多次点击按钮之后,只保证最后一次点击的请求能够成功。
var pendingRequests = {};
jQuery.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
var key = options.url;
console.log(key);
if (!pendingRequests[key]) {
pendingRequests[key] = jqXHR;
}else{
//jqXHR.abort(); //放弃后触发的提交
pendingRequests[key].abort(); // 放弃先触发的提交
}
var complete = options.complete;
options.complete = function(jqXHR, textStatus) {
pendingRequests[key] = null;
if (jQuery.isFunction(complete)) {
complete.apply(this, arguments);
}
};
});
iCloud
设置救援邮箱
查看您的保障服务和支持期限 :查看您的 Apple 保修状态以及是否符合另外购买 AppleCare 保修服务的条件。
3 Ways To Open APFS Drives In Windows 10
https://www.intowindows.com/3-ways-to-open-apfs-drives-in-windows-10/
https://www.acutesystems.com/scrtm.htm
Open Mac APFS and HFS format disk drives and dmg files from Windows.
How to access an APFS volume on Windows machine
https://superuser.com/questions/1157631/how-to-access-an-apfs-volume-on-windows-machine
https://miao.hu/2019/10/21/choose-mac
苹果硬件选择指南 2019 版 - 紅一葉