前端mvvm框架中双向绑定的原理和实现

2019-1-24 Jon js库

1、通过Object.defineProperty(obj, prop, descriptor)劫持对象的属性读写,其中obj是要在上面定义属性的对象,prop是要定义或修改的属性名称,descriptor是属性的描述符。描述符中可选get和set键值。get是属性的getter方法,返回属性值;set为setter方法,接受唯一参数,并将该参数的值赋值给属性,get和set的默认值均为undefined。 2、双向绑定的简单实现。 <input type="input" id="input"> <span id="show">&...

阅读全文>>

标签: 底层 框架

评论(0) 浏览(471)

解决index.html缓存问题

2019-1-8 Jon html+css

一般项目发版后前端静态文件会有缓存问题, 不强制刷新很难解决, 但是用户不会去强制刷新, 这就需要我们开发人员在配置方面解决浏览器缓存静态文件问题。 一般浏览器缓存的文件有html、css、js等。 css、js文件被缓存的解决方案 一般html中引入的css和js的名字都加了哈希值,所以新版本css、js和就旧版本的名字是不同的,不会有缓存问题。 如果index.html文件被缓存就稍微麻烦些 首先可以在index.html文件头部添加mate标签禁止缓存 <meta http-equiv="Expires" content="0"> <...

阅读全文>>

标签: 面试 缓存

评论(0) 浏览(1237)

前端路由之angular路由配置的区别#和/

2018-12-9 Jon js库

先说下什么是前端路由 以前路由都是后台做的,通过用户请求的url导航到具体的html页面,这种无法做单页应用 而一般要前端单页应用项目就会需要用到前端路由 现在我们在前端可以利用 Angular、vue、react等通过配置文件,达到前端控制路由跳转的功能。 前端路由的实现方法 1.通过hash实现 当url的hash发生改变时,不触发网页重载,触发hashchange注册的回调,回调中去进行不同的操作,进行不同的内容展示。 使用hash来实现的话,URI规则中要带上#,路由中#后边的内容就是hash 如 http://localhost:4200/#/home/pa...

阅读全文>>

标签: 路由

评论(0) 浏览(527)

js获取浏览器系统当前使用语言

2018-11-8 Jon js+jquery+ajax

运行下面代码获取本地系统语言,关键是js代码 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><title>获取浏览器系统当前使用语言</title></h...

阅读全文>>

评论(0) 浏览(319)

get和post请求的区别及本质总结

2018-10-9 Jon 其他

先看答案 不同点: GET参数通过URL传递,POST放在Request body中。 GET在浏览器回退时是无害的,而POST会再次提交请求。 GET产生的URL地址可以被存为书签,而POST不可以。 GET请求会被浏览器主动cache,而POST不会,除非手动设置。 GET请求只能进行url编码,而POST支持多种编码方式。 GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。 GET请求在URL中传送的参数是有长度限制的,而POST没有。 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。 GET比POST更不安全,因为参数直接...

阅读全文>>

标签: get

评论(0) 浏览(564)

关系型和非关系型数据库

2018-9-11 Jon 服务器

常见的数据库 关系型     MySQL(中型)     Oracle(大型)     SQL Server(大型)     DB2(大型)     Access(小微型)     Sqlite(小微型) 非关系型     Redis(键值对数据库。 适合缓存场景。)   &nb...

阅读全文>>

标签: 数据库

评论(0) 浏览(319)

Redis和MongoDB数据库的比较

2018-8-21 Jon 服务器

相同点 都是非关系型数据库 能都比较高、均支持持久化 源码语言类似都是c和c++ 均不适合需要使用复杂sql的操作和事务性系统 特点 redis 内存数据库(数据放在内存中,持久化是使用RDB或者aof) 支持丰富的数据结构,包括hash、set、list等。 Redis 事务支持比较弱,只能保证事务中的每个操作连续执行 可以用作数据库、缓存和消息中间件 MongoDB 数据实际上是存放在硬盘的(当内存不够时,热点数据放入内存,其他数据存在磁盘) 数据结构比较单一 但是支持丰富的数据表达,索引 最类似关系型数据库,支持的查询语言非常丰富 mongodb不支持...

阅读全文>>

标签: 数据库

评论(0) 浏览(270)

HTML <base> 标签详解

2018-7-28 Jon html+css

HTML 标签详解 运行下面代码查看base标签功能 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><base href="http://yuanqiao.pw/img/" data-ke-src="http://yuanqiao.pw/img/" target="_blank" /> <meta name="viewport" content="width=device-width, initial-scale=1.0...

阅读全文>>

标签: base

评论(0) 浏览(265)

常用地图坐标及相互转换

2018-6-16 Jon 前端工具

一、常用的地图坐标有三种 1、火星坐标(GCJ02)         火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。并要求在中国使用的地图产品使用的都必须是加密后的坐标,而这套WGS84加密后的坐标就是gcj02。谷歌国内地图、腾讯(搜搜)地图,阿里云地图,高德地图 2、地球坐标(WGS84)        美国GPS使用的是WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置。GPS、谷歌地图卫星,...

阅读全文>>

标签: 坐标

评论(0) 浏览(530)

Angular 模块懒加载和预加载策略

2018-6-12 Jon js库

angular2及以上提供了两个非常实用的特性:懒加载和预加载 一、理论 1. 什么是懒加载? 懒加载也叫延迟加载,在访问到这个模块的时候,Angular才会加载这个模块。 2. 为什么要使用懒加载? 我们知道一个项目做得比较大的时候,模块组件比较多的时候,代码的体积也就相应增加,执行时间相应延长,这样会使得页面首次打开加载时长增大,用户体验下降。使用懒加载可以很好地解决这个问题,让开始只加载需要用户需要的代码,后续用户交互时再加载对应的代码,可以大幅提升首屏用户体验,让用户感觉到首屏很快,但是随之带了的是用户第一次去查看懒加载模块时,这个时候懒加载模块菜开始加载,会有个加载等待的延...

阅读全文>>

标签: angular

评论(0) 浏览(564)

select2 默认不选中以及动态改变数据

2018-6-6 Jon js库

select2 使用总结 记录 select2 一般比较难查到的功能   加载数据并默认不选中   加载数据后动态改变数据(包含清空数据) Document section { margin: 30px; } /* 重置了选择框样式 */ .form-cont...

阅读全文>>

标签: select2

评论(0) 浏览(1161)

angular 如何在打包发布时清除console信息

2018-5-28 Jon js库

问题 console一般是我们开发时 用于测试打印到控制台的数据 以便我们调试程序 当项目打包上线时 这些console已然无用 这个时候还在控制台打印出来 如果打印的是一些敏感信息 就没那么安全了 并且还会影响美观 我们如果只是简单的查找代码中的console并删除 会有几个问题 1、工作量比较大(如果你使用console多的话) 2、如果你使用了一些插件,那么插件中的console删起来比较繁琐 3、如果后期想要开发环境上再次打印,则又要重复写和删 分析 那么既然我们开发环境需要而生产环境不需要 那么我们可以通过判断当前环境是开发还是生产 从...

阅读全文>>

标签: angular

评论(0) 浏览(377)

皖ICP备15010162号-1 ©2015-2020 知向前端
qq:1614245331 邮箱:13515678147@163.com Powered by emlog sitemap