胡晓曦的博客

个人开发文档

瓦片切片方式

切片的规则存在 TMS、Google Maps、百度和 QuadTree 的方式,TMS 定义切片的开始从地图左下角开始,即中心点(origin)在左下角,Google Maps 的切片定义中心点在左上角,QuadTree 是必应地图使用的一种切片命名格式,TMS 和 Google Maps 是将地图以 x/y/z 的方式存储读取,QuadTree 将 x/y 转换成二进制的形式,进行存储读取,原理是一样的,只是命名规则不同。

阅读全文 »

Mapbox 地图使用教程

Mapbox 地图初始化

本文主要针对于使用本地 GeoJSON 数据创建地图服务, 最终目的是使用本地 WebServer 启动静态地图页面, 如果需要使用 Mapbox 线上资源, 请参考 Mapbox 线上示例

阅读全文 »

H5 性能优化意义

对于一个 H5 的产品,功能无疑很重要,但是性能同样是用户体验中不可或缺的一环。原本 H5 的渲染性能就不及 native 的 app,如果不把性能优化做起来,将极大地影响用户使用产品的积极性。

用户感受

当用户能够在 1-2 秒内打开 H5 页面,看到信息的展示,或者能够开始进行下一步的操作,用户会感觉速度还好,可以接受;而页面如果在 2-5 秒后才进入可用的状态,用户的耐心会逐渐丧失;而如果一个界面超过 5 秒甚至更久才能显示出来,这对用户来说基本是无法忍受的,也许有一部分用户会退出重新进入,但更多的用户会直接放弃使用。

阅读全文 »

包管理器

apt-get Debian/Ubuntu 系统包管理器

apt-get 是 Debian/Ubuntu 系统中一个用于快速下载/安装的简单命令行管理工具

参数介绍

阅读全文 »

网络相关

DNS 预解析

DNS 解析也是需要时间的,可以通过预解析的方式来预先获得域名所对应的 IP。

1
<link rel="dns-prefetch" href="//example.com" />

缓存

缓存对于前端性能优化来说是个很重要的点,良好的缓存策略可以降低资源的重复加载提高网页的整体加载速度。

通常浏览器缓存策略分为两种:强缓存和协商缓存。

阅读全文 »

算法基础

时间复杂度

通常使用最差的时间复杂度来衡量一个算法的好坏。

常数时间 O(1) 代表这个操作和数据量没关系,是一个固定时间的操作,比如说四则运算。

对于一个算法来说,可能会计算出如下操作次数 aN + 1N 代表数据量。那么该算法的时间复杂度就是 O(N)。因为我们在计算时间复杂度的时候,数据量通常是非常大的,这时候低阶项和常数项可以忽略不计。

当然可能会出现两个算法都是 O(N) 的时间复杂度,那么对比两个算法的好坏就要通过对比低阶项和常数项了。

阅读全文 »

概念

栈是一个线性结构,在计算机中是一个相当常见的数据结构。

栈的特点是只能在某一端添加或删除数据,遵循先进后出的原则

阅读全文 »

本地文字切片

mapbox 地图字体通常使用 mapbox 线上 glyphs 文件. 字体本地化需要将使用的字体提取至本地 glyphs 文件中, 对应的, 需要修改为本地的地址:"glyphs": "./font/{fontstack}/{range}.pbf".

而 fontstack 和 range 会被具体的字体类型和这个字在字体中所处的实际范围给替换了. mapbox 团队开源了一个工具, 将普通的 ttf 和 otf 字体转换成 mapbox GL 渲染需要的字体的工具:node-fontnik.

mapbox/node-fontnik 工具使用介绍

阅读全文 »
0%