js 判断图片是否完全加载完成
原文网址在日常写代码的时候,我们有时候会遇到当图片未加载完成时,会发生高度塌陷,如果这个时候我们获取元素高度的时候获取到的不是元素真正的高度,会造成样式紊乱
window.onload 和ready的区别图片从网络环境下载到本地是需要时间的,当图片灭有下载完的时候,使用js获取到元素的宽高将是0
jquery中的ready方法只是dom元素结构加载完成,便视为完全加载完成,但是此时图片并未加载完成,此时宽高还是0
js的window.onload是指dom生成和资源加载出来后才会执行onload函数
方法一123$('img').load(function() {})
缺点是每加载一个图片,回调函数就会执行一次
方法二123456var imgNum = $('img').length$('img').load(function() { if(imgNum) { // 加载完成执行方法 }})
缺点是由于图片是从缓存文件里面拿,load方 ...
javascript 全局函数
全局函数
decodeURI() 解码某个编码的URI
encodeURI() 把字符串编码为URI
decodeURIComponent() 解码一个编码的URI组件
encodeURIComponent() 把字符串编码为URI组件
escape() 对字符串进行编码
eval() 计算javascript字符串并把它作为脚本来执行
isFinite() 检查某个值是否为有穷大的数
isNaN() 检查某个值是否是数字
Number() 把对象的值转化为数字
parseFloat() 解析一个字符串并返回一个浮点数
parseInt() 解析一个字符串并返回一个整数
String() 把对象的值转为字符串
unescape() 对由escape()编码的字符串进行解码
Array 数组操作
Array 对象方法
concat() 连接两个或者更多的数组,并返回结果
copyWithin(target, start, end) 将数组的指定位置拷贝元素到数组的另一个指定位置中 (target 指的是元素复制的位数, start指的是元素开始复制的位置,end指的是元素结束复制的位数)
entries() 返回一个数组的迭代对象,包含数组的键值对[index, vlaue]
every() 检测数组元素的每个元素是否符合条件,如果都满足条件, 返回true,如果不满足返回false
some() 检测数值中某个元素是否符合条件,如果有一个符合,返回true,如果全不符合,返回false
fill() 使用一个固定值来填充数组
filter() 用于筛选数组,返回符合条件的一个新的数组
find() 返回符合传入测试的数组元素
findIndex() 返回符合传入测试数组元素的索引
forEach() 数组的每一个元素都执行一次回调函数
map() 循环遍历数组中的每一个值,可以用于修改数组
from() Array.from() 通过给定的对象创建 ...
从零开始搭建vue的webpack运行环境
初始化 运行环境12npm init -y// 初始化package.json文件
安装 (webpack和webpack-dev-server)12// 安装webpack和webpack-dev-servernpm install -S webpack webapck-dev-server
配置package.json 和webpack.config.js1234567// package.json"script": { // 本地运行环境 执行命令 npm run dev "dev": "webpack-dev-server --open --config webpack-dev-server", // 打包命令 npm run build "build": "webpack"}
入口配置和出口环境配置12345678910111213// webpack.config.jsconst path = require("pa ...
关于在eggjs中使用mysql进行数据处理
使用docker 安装mysql 数据库1234567docker pull mysql // 默认拉取最新版本的mysql mysql:5.7 拉取版本号为5.7的mysqldocker docker run -p 3306:3306 --name mysql-test mysql:5.7 // 创建mysql容器 并启动docker start mysql-test //开启mysql 服务docker stop mysql-test // 关闭mysql 服务docker restart mysql-test // 重启mysql 服务
eggjs 使用mysql 安装mysql插件
1npm install egg-mysql --save
在plugin.js 和 config.default.js 配置mysql
1234567891011121314151617181920212223242526272829303132333435// plugin.jsmodule.exports = { mysql: { enable: tr ...
eggjs token验证(redis & jsonwebtoken)
redis 使用安装radislinux环境下安装radis
sudo apt-get install redis-server
检查redis服务器系统进程
ps -aux|grep redis
查看redis端口状态
netstat -nlt|grep 6379
123456// 启动/etc/init.d/redis-server start// 停用/etc/init.d/redis-server stop// 重启/etc/init.d/redis-server restart
使用docker 安装redis123456789101112// 下载版本docker pull redis // 默认会拉取最新版本的redis docker images // 查看镜像是否安装成功docker run -itd --name redis-test -p 6379:6379 redis // 启动redis容器 端口号为6379docker start redis-test // 启动redisdocker stop redis-test // 关闭redisdocker re ...
typescript 学习质量 - 01
参考文章:廖雪峰 typescript入门教程
数据类型原始数据类型
boolean 布尔值1234567let isDone: boolean = false;// 注意:使用构造函数Boolean创建的对象不是布尔值let createdByNewBoolean: boolean = new Boolean(1);// Type 'Boolean' is not assignable to type 'boolean'.// 'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.// 实际上new Boolean 返回的是一个boolean对象
number 数值定义
string 字符串定义
void 空值声明一个void类型的变量 只能赋值为undefined和null
null undefinednull 和 undefined ...
eggjs-start
eggjs 定义设计原则 egg的产检机制有很高的可扩展性,一个插件只做意见事情,egg通过框架聚合这些插件,并根据自己的业务场景定制配置,可以降低应用的开发成本
其他框架的差异express express是node.js社区广泛使用的框架,简单且扩展性强,适合做个人项目,但框架本身缺少约定,标准的MVC模型会有各种千奇百怪的写法,egg按照约定进行开发,奉行约定优先配置,团队协作成本低
sails sails和egg一样奉行【约定优与配置】的框架,扩展性也非常好,但是相比egg,sails支持Blueprint REST API、WhaterLine这样可扩展的ORM、前端集成、websocket等,但是这些功能都是优Sails提供的,但egg不直接提供功能,只是集成各种功能插件,比如实现egg’-blueprint,egg-waterline这样的插件,在使用sails-egg框架整合这些插件
特性
提供基于egg定制上层框架的能力
高度可扩展的插件机制
内置多进程管理
基于Koa开发,性能优异
框架稳定,测试覆盖率高
渐进式开发
异步编程模型 ...