CSS魔法
CSS魔法
||| ---|--- **发布时间** | 2019-11-21 **所在公司** | OC **演讲类型** | 技术分享 / 宣讲动员 **角色** | 讲师 / 架构师 ## 概述 这是在 OC 公司制定前端编码规范时所作的分享和动员。为更好地推进落地,除了编写必要的规范文档以外,还准备好了配套的工具链、配置包、操作指南,平滑融入到日常开发流程中。 ## 幻灯片     ...
||| ---|--- **发布时间** | 2017-06-09 **所在公司** | 百姓网 **演讲类型** | 技术分享 **角色** | 讲师 ## 概述 本文描述了我在面临一个宏观的性能优化项目时,所经历的几个阶段。我与大多数前端工作者一样,对 “性能优化” 的认识都是从微观优化开始的。因此在面临一个宏观项目时,必然会经历困惑和成长,最终跳出固有视角,一步步经历追本溯源、打磨工具、拆分目标、多端联合等阶段,逐渐体会真相。 最后一段 “××期” 是一个小插曲和我的吐槽,为保持幻灯片的完整性保留下来,各位读者可忽略。 ## 幻灯片      ...
||| ---|--- **发布时间** | 2014-02-17 **所在公司** | 百姓网 **演讲类型** | 技术分享 **角色** | 讲师 ## 概述 跳出技术层面,把目光扩展到 “设计” 层面和 “硬件” 层面,思考一个 UI 框架应该怎样实现按钮的样式和交互。作为一个前端工程师,如果你关注 UI,那么这两个层面不可忽略。 这是我在百姓网做的第一场面向全员的演讲。虽然年代久远,但仍有分享价值。 ## 幻灯片  *** ...
## 准备工作 1. 获取本项目的最新代码。 1. 在项目根目录执行 `npm install`,安装必要的依赖。 ## Demo 页面 为便于开发,我们为 demo 页面设置了两种模式:“开发模式” 和 “生产模式”。 在这两种模式下,demo 页面加载的资源是不同的(具体行为可参见 `demo/index.html` 源码)。本文档只关心 “开发模式”。 ## 文件监听与自动刷新 在项目根目录执行 `npm run watch`,作用如下: * 此命令将持续监听源码的变更,并自动重新编译 demo...
## 准备工作 1. 获取本项目的最新代码。 1. 在项目根目录执行 `npm install`,安装必要的依赖。 ## 开发阶段 #### 一次性 在项目根目录执行 `npm run dev`,将得到 `.tmp/nasa-raw.js` 文件。 此文件是 Nasa.js 源码的打包结果,不包含 nebPay 等外部依赖;此文件仅用于 demo 页面的开发模式。 #### 实时更新 在项目根目录执行 `npm run...
## 概述 #### 总体设计 * 纯静态的 API 设计风格。除了极度常用的几个核心 API 以外,常规 API 都采用 `Nasa.module.method()` 这样的命名方式。 * All-in-One 的打包方式。把所有外部依赖打包到在一起,对外暴露一个全局变量 `Nasa`。 #### 文档约定 * 如果某个 API 未描述 “返回值”,则表示它没有返回值;如果未描述 “参数”,则表示不需要参数。 *...
* `ext_installed_ever` —— 装过钱包扩展,这样 `ready()` 会多等一等 * `last_used_addr` —— 用户上次用过的钱包地址
我只是在测试中发现了一个现象,暂时没有深入阅读钱包扩展的源码。 在每个交互周期内(页面 → 钱包扩展 → 页面),`NasExtWallet.getUserAddress()` 方法只能承载一个回调。也就是说,连续多次调用 `NasExtWallet.getUserAddress(callback)`,最后一次注册的 callback 会覆盖之前的所有 callback。 比如有以下代码: ```js NasExtWallet.getUserAddress(function () { console.log(1) }) NasExtWallet.getUserAddress(function () { console.log(2) }) NasExtWallet.getUserAddress(function () { console.log(3) }) NasExtWallet.getUserAddress(function ()...
### 破坏性变更 * [x] `query()`、`checkTx()` 等接口的返回值风格统一(参见 #18) ### 组件交互 * [x] 内置 nebPay 升级到 v0.2 * [ ] 适配 nebPay v0.2 的新特性 * [ ] 交易相关 API 增加二维码选项(`'always'`/`'never'`/`'auto'`) * [...
*** > ⚠️ 本文档仅列出 API 发展的可能性,并非明确的开发线路图。 *** * [`Nasa.nebPay`](https://github.com/NasaTeam/Nasa.js/issues/15#dependency--nebPay) * [`Nasa.BigNumber`](https://github.com/NasaTeam/Nasa.js/issues/15#dependency--BigNumber) * [`Nasa.VERSION`](https://github.com/NasaTeam/Nasa.js/issues/15#const--version) * [`Nasa.error.NETWORK_ERROR`](https://github.com/NasaTeam/Nasa.js/issues/15#const--error) * [`Nasa.error.SERVER_ERROR`](https://github.com/NasaTeam/Nasa.js/issues/15#const--error) * …… * `Nasa.core.config(...)` = [`Nasa.config()`](https://github.com/NasaTeam/Nasa.js/issues/27) * `Nasa.tx.getTxState(txHash)` * `Nasa.tx.getTxResult(payId|txHash)` = `Nasa.getTxResult()` =...