Theme
Tags
Series
Chrome 插件是一个使用通用的 Web 技术开发的用以增强浏览器功能的软件,你可以添加交互元素,打开或关闭页面标签,与地址栏进行交互,修改该激活页面的内容等。它其实就是一个由 HTML、CSS、JS、图片等资源组成的一个.crx 后缀的压缩包(在开发者模式下浏览器也可以载入未打包的插件)。
浏览器扩展程序是一个小型的程序,它不仅可以使用通用的 web 技术,还可以使用浏览器专门为插件所提供的特有 API,以增强浏览器功能
Chrome 插件配置文件
浏览器扩展程序的安装
浏览器扩展程序配置清单版本 manifest v3 相关介绍
browser actions 和 page actions 可以在浏览器上添加图标,以提供用户交互。
浏览器扩展程序必备概念
content scripts 是在页面加载后运行的 JavaScript 文档(或 CSS 样式表),它可以操作页面的 DOM。
浏览器扩展程序开发调试方法
omnibox 多功能框实际是指浏览器的地址栏,让用户在地址栏输入该关键字时并按 Tab 键触发插件的相应 actions,如提供搜索建议。
浏览器扩展程序开发常见需求实现方法
Chrome 插件不同页面之间的消息通讯。
Ajax,Asynchronous JavaScript And XML,即异步的 JavaScript 与 XML 技术,该概念是在 2005 年由 Jesse James Garrett 发明。
从服务器获取新信息的最简单的方式是定期轮询,每隔固定事件客户端向服务器发送请求获取消息(即使数据并无更新),这种方法可以及时更新数据但是频繁固定的请求可能会造成服务器很大负担;长轮询则是另一种是与服务器保持持久连接的更好方式,它十分简单不使用任何特定的协议,也可以实现「无延迟」地传递消息以保持数据是最新的。
对于大文件(如果我们可能需要恢复),可恢复的上传应该带有上传进度提示,由于 fetch 不允许跟踪上传进度,我们将会使用 XMLHttpRequest 方法。
URL 统一资源定位符是 URI 通用资源标识的特定类型。
在 RFC 6455 规范中描述的 WebSocket 协议提供了一种在浏览器和服务器之间建立持久连接来交换数据的方法,数据可以作为「数据包」在两个客户端和服务器之间传递,而不会断开连接和其他 HTTP 请求,对于需要连续数据交换的服务,例如网络游戏,实时交易系统等,WebSocket 尤其有用。
后端常见安全方面的问题
session 是暂存在服务器中的数据,它在浏览器(客户端)的 cookie 中只保存相应的 session id,这样可以将临时但敏感的数据存储在服务器端,避免了客户端的数据泄露或被操作。
Nginx 是高性能的 web server,开源免费,一般用作静态服务(服务端不需要解析,直接返回请求文件)、负载均衡;反向代理(对客户端不可逆,客户端无法控制)实现前后端同域联调,解决 cookie 跨域不共享(一般在(本地)开发时前端开启的 server 和后端开启的 server 端口不一致)。
Node.js 提供了核心模块,而其他开发者可以将其开发的拓展模块发布出来,其他开发者就可以使用 npm(是 node package manager 的缩写)这个软件来安装管理这些拓展包。
Postman 是一个功能强大的 API 测试套件,已经成为许多开发人员必备的工具,目标是为开发人员提供最全面的API开发和测试解决方案。
Redis 是 Web server 最常用的缓存数据库,它将数据存放在内存中,相比 MySQL 访问速度快(内存和硬盘的区别),但成本较高,可存储的数据量较小。
Node.js 提供了丰富的内建模块,可以调用内建功能实现相关需求。
Node.js 可以调用 chrome dev tools 调试工具对项目进行除错
系统日志记录了网站的使用情况,根据功能可以分为多种常见的日志
Koa 是基于 Node.js 开发的 web 开发框架,原生支持 async/await(express 中间件是异步回调,需要大量使用回调函数来构建项目)。
Express 是一个基于 Node.js 平台的 Web Server 开发框架,许多流行的开发框架都基于 Express 构建。
Express 是一个包含大量路由和中间件的 Web 框架,其自身只具有最低程度的功能。
路由用于确定应用程序如何响应对特定端点(路径)的请求,包含一个 URI(或路径)和一个特定的 HTTP 请求方法(GET、POST 等)。
为了提供诸如图像、CSS 文件和 JavaScript 文件之类的静态文件,请使用 Express 中的 express.static 内置中间件函数,将包含静态资源的目录的名称,如 public,传递给中间件函数,然后程序就可以基于该目录和给定的路由 URL 寻找目标静态文件;否则无法正确读取资源。
pm2 提供许多参数,以定制项目运行方式,可以在终端或 npm script 中进行配置。
PM2(是 Process Manager 2 的缩写)是具有内置负载平衡器的 Node.js/io.js 应用程序的线上进程管理器。
通过 pm2 配置文件对项目运行方式进行定制,包括进程数量、日志文件目录等。
NoSQL 是 Not Only SQL 的缩写,意即不仅仅是 SQL,一般指使用非关系型的数据存储技术。
在 MongoDB 中基本的概念是数据库 database**、集合 collection、文档 document
使用不同的聚合函数可以针对单个字段(列)进行数据聚合分析,这些函数一般用在 SELECT 语句中,从而在更整体的范围上观测数据,而不仅仅从每一行的数据去探索。
SQL 是 Structured Query Language 的缩写,全称为结构化查询语言,是用于与关系型数据库进行交互的编程语言。
原始的数据结构或内容可能并不适合直接进行分析,SQL 提供了许多内置的函数对数据进行清理,如提取部分数据、数据类型转换、处理 NULL 等。
在 SQL 中日期存储为年、月、日、小时、分钟、秒 YYYY-MM-DD HH:MM:SS 的格式,如此详细的级别保存信息即有好处又存在不足之处。精细的数据颗粒度可以提供非常准确的信息;但是也让信息分组变得很难(基于原始日期数据对表格的行进行聚合变得无意义)。SQL 内置许多函数可以帮助我们改善日期数据的处理体验。
一般在数据库中将数据存储为表格形式,表格之间的关系可以使用 ERD,Entity Relationship Diagram,实体关系图表示。
按照规范化在创建数据库时一般将数据按照逻辑进行分组/拆分,存储在不同的实体(表格)中,而不同的表格之间的数据通过特定字段/属性进行对照关联,这种分离关联的结构可以实现快速高效的数据访问和操纵。
NULL 是一种数据类型(而不是一个数值,和零或空字符串不同),表示 SQL 中没有数据,它们经常在聚合函数中被忽略了。
子查询和表格表达式都是用来通过创建的一个表格,然后再编写一个查询来与这个新建的表格进行互动,因为有时候要回答的问题无法通过直接处理数据库中的现有表格获得答案。
MySQL 是 Oracle 推出的关系型数据库,是十分流行的 Web server 数据库,可在官网免费下载用于学习。
pgAdmin 是一个数据库管理网页,提供图形化交互界面,用于设计、维护和管理 Postgres 数据库。主要作为监控器,查看各数据库的运行状态
创建表格时需要指定数据类型,以规范化(限制)字段存储的数据为相同的数据类型。
数据导入和导出是一般是指在数据库 DATABASE 之间进行的,也可以从客户端(电脑)导入导出数据。
PostgreSQL 是一个开源的面向对象的关系型数据库管理系统。
使用 PostGIS 插件创建空间数据库
源数据可能存在缺失、异常值等情况,需要先进行数据清洗,然后才能够进行后续的数据分析。
psql 是 PostgreSQL shell,可以输入 sql 代码并立即执行获得反馈,通过命令行的方式与数据库进行交互。