使用前端生成 PDF 的注意事项
这里主要使用前端来生成 pdf, 但是由于浏览器安全性的问题会导致浏览器不允许读取图片, 以下这几个步骤则可以生成 pdf
这里主要使用前端来生成 pdf, 但是由于浏览器安全性的问题会导致浏览器不允许读取图片, 以下这几个步骤则可以生成 pdf
Css 设定变量
证书生成地址见 : iOS 证书及描述文件制作流程
如果证书类型存在错误, 则会出现以下的问题, 这里应该使用开发证书
pnpm 的优势不用多说, 懂得自然了解了, 不懂的去官网看下他们的介绍 项目初衷 | pnpm 这里主要的目的是使用 pnpm 替换掉 yarn 和 npm
这样造成的依赖循环逃脱不了轮回, 就会导致东西关联较多
在我了解了 pnpm 之后他可以很好的解决以上问题并且还有它自己独到的优势
所以就打算用他替换掉 nvm, yarn, npm 这些工具, 仅仅使用一个即可
TaoNpm 的更新流程示意图:
为什么要换源? npm 官方站点 http://www.npmjs.org/ 并没有被拦截,但是下载第三方依赖包的速度由于和外网联通的限制, 速度不能满足实际的使用需求.为了加速访问, 我们可以使用镜像来进行访问
国内有几个镜像站点可以供我们使用
速度非常快,镜像站会实时更新,为我们节省了好多时间.
发现一个报错 ResizeObserver loop limit exceeded,这个报错是在公司平台项目监听系统中提示的,而浏览器的 console 中却没有提示
如果要在本地开发中调试定位这个问题,可以在项目代码里加入一个方法,在控制台中输出这个错误:
在使用 Webstorm 写 es6、node 的时候,会出现没有语法提示甚至是产生波浪线,例如常用的 require
, import
不仅是内置函数语法,不仅是 js,在一些第三方 npm 库(比如 element-ui),在 vue/html 等上也被黄色背景色标上“未知标签名”的语法提示
既影响美观,又不支持代码候选补全,实在对不起 WebStorm 前端开发利器的称号。
解决方法
打开 : Preferences | Languages & Frameworks | JavaScript
将 JavaScript Language version 更改为 项目所需要的版本,
方法 1: 推荐
Smallni | 2011.09.13 | 前端Tips
3
平时我们几乎每天都在和浏览器打交道,写出来的页面很有可能在不同的浏览器下显示的不一样。苦逼的前端攻城师们为了兼容各个浏览器而不断地去测试和调试,还在脑子中记下各种遇到的BUG及解决方案,而我们好像并没有去主动地关注和了解下浏览器的工作原理。如果我们对此做一点了解,我想在项目过程中就可以根据它有效的避免一些问题以及对页面性能做出相应的改进。今天我们主要根据浏览器的渲染原理对CSS的书写性能做一点改进(当然还有JS本篇文章暂不考虑,后面的文章会做介绍),下面让我们一起来揭开浏览器的渲染原理这一神秘的面纱吧:
最终决定浏览器表现出来的页面效果的差异是:渲染引擎 Rendering Engine(也叫做排版引擎),也就是我们通常所说的“浏览器内核”,负责解析网页语法(如HTML、JavaScript)并渲染、展示网页。相同的代码在不同的浏览器呈现出来的效果不一样,那么就很有可能是不同的浏览器内核导致的。
我们来看一下加载页面时浏览器的具体工作流程(图一):
(图一)
1、解析HTML以重建DOM树(Parsing HTML to construct the DOM tree ):渲染引擎开始解析HTML文档,转换树中的标签到DOM节点,它被称为“内容树”。
2、构建渲染树(Render tree construction):解析CSS(包括外部CSS文件和样式元素),根据CSS选择器计算出节点的样式,创建另一个树 —- 渲染树。
3、布局渲染树(Layout of the render tree): 从根节点递归调用,计算每一个元素的大小、位置等,给每个节点所应该出现在屏幕上的精确坐标。
4、绘制渲染树(Painting the render tree) : 遍历渲染树,每个节点将使用UI后端层来绘制。
主要的流程就是:构建一个dom树,页面要显示的各元素都会创建到这个dom树当中,每当一个新元素加入到这个dom树当中,浏览器便会通过css引擎查遍css样式表,找到符合该元素的样式规则应用到这个元素上。
注意了:css引擎查找样式表,对每条规则都按从右到左的顺序去匹配。 看如下规则:
原文地址:前端跨域总结
博主博客地址:Damonare的个人博客
相信每一个前端er对于跨域这两个字都不会陌生,在实际项目中应用也是比较多的。但跨域方法的多种多样实在让人目不暇接。老规矩,碰到这种情况,就只能自己总结一篇博客,作为记录。
原文地址:ESLint 使用入门
ESLint 是一个开源的JavaScript验证工具,相比JSLint,ESLint具有可配置性。其他跟JSLint 的不同之处:
在团队协作中,为避免低级 Bug、产出风格统一的代码,会预先制定编码规范。使用 Lint 工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量。
在以前的项目中,我们选择 JSHint 和 JSCS 结合使用,WebStorm 等开发环境已经支持这些工具,使用起来很顺手。然而,最近使用 React JSX 语法时,却遇到了问题:JSHint 不支持 JSX 语法。虽然有 JSXHint 这样的 JSHint 衍生工具,但个人并不喜欢这样的实现方式:不是以插件的形式实现,而是重新重新包装了一个工具。Nicholas C. Zakas 也不喜欢,所以有了 ESLint。
原来选择 JSHint 的时候,也对比过 ESLint,基于 ESLint 在速度上比 JSHint 要慢一些,最终使用了 JSHint。现在需要 JSX 支持了,才发现 ESLint 的设计理念更符合实际需求。
nvm 是 Node.js 的版本管理器 (version manager),可在同一台主機上安裝多個版本的 Node.js 環境,因為不同專案可能會使用不同的 Node.js 版本,那就需要透過一個版本管理器來切換不同的 Node.js 版本。
再一次,没有整理ASCII的欲望了,但是还有一系列你需要的东西,为了在html网页上显示特殊字符,可以使用特殊的html代码在浏览器中显示特殊的字符,这些字符可以表现为html实体,html字符或者html符号
属性
href
指定链接文档的位置
相对地址 - ‘/theme/theme.css’
绝对地址 - ‘http://www.example.com/styles/style.css'
hreflang
链接文档的语言
两个字母的语言代码用来指定链接文档的语言
[ HTML5 - html Language Code]
media
指定哪一种设备将使用这个文档
———-
可能的操作符
—–
and, not, ‘,’(or)
———-
设备
—–
all 默认,适合所有设备
aural 听觉的, 演讲综合
braille 布莱叶盲文回馈设备
handheld 手持设备, 小屏幕,有限带宽
projection 放映者
print 打印设备
screen 屏幕设备, 电脑屏幕
tty 打字设备
tv 电视设备, 低分辨率,有限的滚动能力
———-
值
—–
width
指定目标显示区域的宽度 [min-/max-]
height
指定显示区域的高度 [min-/max-]
device-width
指定显示目标的宽度 [min-/max-]
device-height
指定显示目标的高度 [min-/max-]
orientation
指定显示区域或者纸的定位方向
portrait 纵向
landscape 横向
aspect-ratio
方位比例[media=”screen and (aspect-ratio:16/9)”] [min-/max-]
device-aspect-ratio
设备比例 [min-/max-]
color
指定可以新鲜事的颜色的位数 [min-/max-]
color-index
指定目标可以控制的的颜色的数量 [min-/max-]
monochrome
指定在单色框架缓存上每个像素的位数 [min-/max-]
resolution
分辨率单位(dpi, dpcm)
media=”print and (resolution:300dpi)” [min-/max-]
scan
扫描
progressive 进程扫描
interlace 交错扫描
grid
指定输出设备是grid或者位图, 可用值是 (0,1)
rel
指定文档和当前页面的关系
alternate 连接到文档的可替换的版本
archives
author 连接到作者的介绍页面
bookmark
external
first
help 连接到帮助文档
icon 为文档导入一个图标显示
last
license 连接到文档的版权信息
next 指定文档是某个文档的一系列, 并连接到本系列的下一个文档
nofollow
noreferrer
pingback
prefetch 指定可以被缓存的目标源码
prev 指定目标文档的上一个链接
search 连接到文档的搜索工具
sidebar
tag
up
stylesheet 连接到导入样式的地址
canonical 权威页面
sizes
指定链接源文件的高度和宽度[width x height], 仅仅适用于 ‘icon’ 属性
连接到大小的一个列表
type
指定链接文档的MIME类型
html 5 元素和 html4.01 的区别, 在我的文档中我会使用不同的颜色来值定
新版本的颜色会使用绿色
老版本的颜色使用橙黄色
html代码使用淡蓝色
自己添加的代码使用紫色标注,便于调试和对比错误的地方
通用属性(Global Attributes)
accesskey
指定一个快捷键来激活或者设置目标点
class
指定一个或者多个样式名称
contenteditable
指定元素的内容是否能够被编辑
contextmenu
指定一个元素的右键菜单
dir
指定文本的方向
draggable
指定元素是否可以被拖动
dropzone
Specifies whether the dragged data is copied, moved, or linked, when dropped
hidden
Specifies that an element is not yet, or is no longer, relevant
id
Specifies a unique id for an element
lang
Specifies the language of the element’s content
spellcheck
Specifies whether the element is to have its spelling and grammar checked or not
style
Specifies an inline CSS style for an element
tabindex
Specifies the tabbing order of an element
title
Specifies extra information about an element
查看文档 : 快速上手 -> 使用组件
这里注意的是
首次唤醒使用 iframe 方式, 这种方式的好处是不要求用户必须跳转链接, 还可以在当前页面使用
再次唤醒使用强制跳转方式, 如果未跳转则进入引导下载页面
以下代码为 react 实现方式, 仅作流程参考
本文是基于 : https://www.yuque.com/duoli/web-fe/umi-best-practice 的基础上发展出来的规范, 本文原则旨在之前文章的补充
原文地址 : npm 与 package.json 快速入门教程
npm 是前端开发广泛使用的包管理工具,之前使用 Weex 时看了阮一峰前辈的文章了解了一些,这次结合官方文章总结一下,加深下理解吧!