陈材华

Results 100 issues of 陈材华

# 前后端接口设计规范 ## 建议采用RESTful 方式来实施。 * 说明1:采用RestFul方式实施接口通用性强,异构性强。 * 说明2:对于使用如Dubbo这样的框架,限于java一种语言范围内,在Provider与Consumer两侧共享一个client.jar包的情形,需要另外包装成RESTFul接口以向外发布。但对于使用Spring Cloud这样框架的新开应用,天然具有采用RestFul方式来实施的便利性。 ## 协议 API与用户的通信协议,总是使用HTTPs协议,确保交互数据的传输安全。 ## 域名 应该尽量将API部署在专用域名之下。 https://api.example.com 如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。 https://example.org/api/ ## api版本控制 应该将API的版本号放入URL。 https://api.example.com/v{n}/ 另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。Github采用这种做法。 >采用多版本并存,增量发布的方式 >v{n} n代表版本号,分为整形和浮点型 >整形的版本号: 大功能版本发布形式;具有当前版本状态下的所有API接口 ,例如:v1,v2...

# API接口规范完整版本(续) ## 整体规范建议采用RESTful 方式来实施。 ### 协议 API与用户的通信协议,总是使用HTTPs协议,确保交互数据的传输安全。 ### 域名 应该尽量将API部署在专用域名之下。 https://api.example.com 如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。 https://example.org/api/ ### api版本控制 应该将API的版本号放入URL。 https://api.example.com/v{n}/ 另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。Github采用这种做法。 > 采用多版本并存,增量发布的方式 > v{n} n代表版本号,分为整形和浮点型 > 整形的版本号: 大功能版本发布形式;具有当前版本状态下的所有API接口 ,例如:v1,v2 > 浮点型:为小版本号,只具备补充api的功能,其他api都默认调用对应大版本号的api...

# 前端重构整体规划(初稿) --- ## 前言 前端技术发展很快,公司的项目面临前端大重构(前后端分离重做),很开心可以让我进行这次项目前端的重构方案编写,在思考的同时参考了网上很多资料,希望本篇重构方案有一定的完整性,可以带给大家一些在面临重构时有用的东西。 ## 原项目需要梳理 > 页面结构 > 核心功能逻辑 > 第三方库、组件、插件 > 兼容要求、页面适配标准 > BI数据的采集和埋点 > 设计UI标准 > 提测标准 ## 重构整体方案 ### 开发规范 > 规范这个东西没有绝对的对错,只有同公司或者同部门来制定规范大家都保持一致,同事之间能很快读懂相互的代码,提高开发效率 #### Html/css/javascript编码规范参考...

# ios的微信下面修改title不生效bug 同样是微信,安卓和ios的设置title会有非常大的区别,安卓系统的微信,只要调用document.title=“xxx”就可以轻松的改变页面的title,但ios系统不能,时好时坏的,非常不稳定; 通过百度,站在巨人的肩膀上,封装了一个简单的,针对修改微信title的工具 ## 源码如下 ``` javascript $.extend($, { setWeixinTitle: function (title) { document.title = title; // hack在微信IOS webview中无法修改document.title的情况 if ($.isWeixin() && $.isIOS()) { var $iframe = $(''); $iframe.on('load',...

--- ## Hybrid简史 > Hybrid既利用了Native App丰富的设备API(Device API),又能拥有Mobile Web的跨平台、高效开发、快速发布的能力,对于相当庞大的应用场景而言都是适用的。 ### Hybrid优势在于: #### 跨平台 - Web内容可以做到开发一次,所有平台生效,诸多产品需要这种能力。 #### 快速发布 - iOS平台,Apple Store平均审核周期1~2周不等,甚至更长,产品的发布周期从2周到1月,这对需要快速发布的产品而言难以接受。 - Android平台,应用商店众多,发布过程烦琐。虽然可以应用内升级,但是带来的问题是新App需要通过应用商店,此外APK体积庞大,2G/3G环境下体验差。 #### 高效开发 - Web开发经过20年的发展,已经将结构(HTML)、表现(CSS)、行为(JavaScript)3部分很好地分离开,在分工协作、开发效率上会具明显优势。 #### 丰富的Device API - Web(HTML5)强调通用性,受限于标准和浏览器实现,许多有用的系统功能未能得到支持(或部分支持)。而Native最大的优势在于设备API的调用能力,只要桥接Native和Web,Web也就能够拥有这种能力。...

初始化,默认设置750的宽度,根据设计稿来就好了,现在一般的设计标准是750或1500 ```html ``` 附加上一小段JS, ```javascript var w1=Math.min(window.innerWidth,screen.width*window.devicePixelRatio),scale=w1/750*0.5; document.getElementById('vp').content='width=750,initial-scale='+scale+',maximum-scale='+scale+',minimum-scale='+scale+',user-scalable=no'; ``` 这样就收工了,页面完全可以按照固定宽度750的尺寸来进行开发,无需顾忌任何屏幕尺寸的变化。

RT 这个bug存在了N久之后的现在,微信团队终于解决了,但以外的发现,iframe尽然捕获不到onload的事件了。

微站业务需要获取访客的openid,当用户注册或者登录时,记录用户的openid,本来想只要在用户登录注册页面时,用一个iframe去调用就可以了,采用不弹出授权页的方式,页面继续显示注册和登录,这样体验会好很多,但是很可惜,openid是取到了,但页面也跟着跳转到了其他的页面,iframe的地址变更竟然会覆盖当前页面!!我已经把iframe设置为隐藏,高0,宽0,position:absolute;top:-9999px;left:-9999px也一样不行。 而且redirectUrl地址不能包含#号和%23,导致spa返回页面不能传递正确的页面地址;只能通过服务端中转的方式返回正确的页面。

# Vue.js双向绑定的实现原理 // Vue.js 最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统。本文仅探究双向绑定是怎样实现的。先讲涉及的知识点,再用简化得不能再简化的代码实现一个简单的 hello world 示例。 * 参考文章:https://segmentfault.com/a/1190000006599500 ## 一、访问器属性 访问器属性是对象中的一种特殊属性,它不能直接在对象中设置,而必须通过 defineProperty() 方法单独定义。 ``` var obj = { }; // 为obj定义一个名为 hello 的访问器属性 Object.defineProperty(obj, "hello", { get: function...

## 改变 input textarea 焦点光标的颜色 ### 老办法: ``` input,textarea { color: rgb(60, 0, 248); /* 光标的颜色*/ text-shadow: 0px 0px 0px #D60B0B; /* 文本颜色 */ -webkit-text-fill-color: transparent; } input::-webkit-input-placeholder{ color: rgb(60,...