浏览器数据库 indexedDB 入门学习使用dexie.js封装

Publish: February 20, 2021 Category: WEB No Comments

基础知识可以在这里学习一下:

http://www.ruanyifeng.com/blog/2018/07/indexeddb.html 【浏览器数据库 IndexedDB 入门教程】

有一个对indexedDB的封装,https://github.com/dfahlander/Dexie.js 实现了丰富的操作。

1 快速入门:
1.1 数据库定义(declare database)

var db = new Dexie("MyDatabase");
db.version(1).stores({
    friends: "++id, name, age, *tags",
    gameSessions: "id, score"
});

提示: 不要在sql中声明所有的列,只需要声明需要建立索引的列,上面声明的几个列都是需要在where查询条件中要用到的列。

数据库定义语法

++   自增主键(Auto-incermented primary key)
&    唯一(Unique)
*    多条目索引(Multi-entry index)
[A+B]    复合索引(Compound Index)

提示:
① indexedDB中的多条目索引是指数组属性的索引,其中数组中的每个项都指向object/record/document。它类似于PostgreSQL中的GIN索引。
② compound(或composite)索引是基于多个keypath的索引。它可以用于在一个索引中高效地索引多个属性,以便轻松找到两个键及其值的组合的存在性。在dexe中,复合索引必须在定义数据库模式的时候分配。




阅读剩余部分...

twill 安装记录

Publish: May 9, 2020 Category: WEB,小玩具 No Comments

要找一个laravel的cms,看这个start数量和文档写的都还不错,现在本地搭建环境。

先看下环境版本要求:

支持版本 推荐版本
PHP >= 7.1 7.4
Laravel >= 5.6 7
npm >= 5.7 6.13
MySQL >= 5.7 5.7
PostgreSQL >= 9.3 10

首先安装laravel

composer create-project --prefer-dist laravel/laravel baogaoban.com "6.*"

如果国内的composer比较慢,推荐使用阿里的镜像

全局设置
#设置全局composer镜像配置
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
#取消配置
composer config -g --unset repos.packagist

项目设置
#设置项目composer镜像配置
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
#取消配置
composer config --unset repos.packagist

安装twill composer包

cd baogaoban.com
composer require area17/twill:"^2.0"

安装twill

php artisan twill:install

注意:
该命令会执行数据库迁移,务必保证 .env配置文件中关于数据库的配置能正确的连接到数据库。
该命令主要有一下操作:

  1. 在 routes 目录创建一个 admin.php 文件。
  2. twill数据库迁移
  3. 发布 twill的配置文件到 config 目录
  4. 发布twill的资源文件到 admin console 界面
  5. 创建一个超级用户 (这里的邮箱和密码要记住,后面登录时候会用到)


阅读剩余部分...

HTTP中几个压缩算法的PHP实现分析

Publish: September 14, 2016 Category: WEB,编程,代码分享 No Comments

HTTP 协议中的 Accept-Encoding/Content-Encoding 机制。它可以很好地用于文本类响应正文的压缩,减少网络数据传输,所以一直被广泛使用。但 HTTP 请求的发起方浏览器,无法事先知晓要访问的服务端是否支持解压,所以现阶段的浏览器没有压缩请求正文。
有一些通讯协议基于 HTTP 做了扩展,他们的客户端和服务端是专用的,完全可以针对请求正文进行压缩,例如 WebDAV 客户端就是这么做的。

HTTP中各压缩算法

实际的 Web 项目中,会存在请求正文非常大的场景,例如发表长篇博客,上报用于调试的网络数据等等。这些数据如果能在本地压缩后再提交,就可以节省大量流量、减少传输时间。本文介绍如何对 HTTP 请求正文进行压缩,包含如何在服务端解压、如何在客户端压缩两个部分。

开始之前,先来介绍本文涉及的三种数据压缩格式:

  • DEFLATE,是一种使用 Lempel-Ziv 压缩算法(LZ77)和哈夫曼编码的压缩格式。详见 RFC 1951;
  • ZLIB,是一种使用 DEFLATE 的压缩格式,对应 HTTP 中的 Content-Encoding: deflate。详见 RFC 1950;
  • GZIP,也是一种使用 DEFLATE 的压缩格式,对应 HTTP 中的 Content-Encoding: gzip。详见 RFC 1952;
    Content-Encoding 中的 deflate,实际上是 ZLIB。为了清晰,本文将 DEFLATE 称之为 RAW DEFLATE,ZLIB 和 GZIP 都是 RAW DEFLATE 的不同 Wrapper。


阅读剩余部分...

HTTPS交互流程分析

Publish: August 1, 2016 Category: WEB No Comments

概念

先理解几个概念
对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等,示意图如下:
20080419173658592.png

非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等,示意图如下:
20080419173659971.png




阅读剩余部分...

开源PHP视频管理系统CumulusClips

Publish: February 27, 2016 Category: WEB 2 Comments

CumulusClips 是一个开源的视频CMS,跨平台做的比较好,适合中小型的视频站点搭建。高度可定制的主题,开发上手很快。后续还将陆续推出,主题制作,插件开发以及二次开发相关的教程。下面将介绍CumulusClips 的安装过程。

系统要求

  • 服务器要求:

CumulusClips只适合在linux或unix系统上运行

Linux (Kernel 2.6.32+)
PHP 5.3+
MySQL 5.0+
Apache web server 2.x (with mod_rewrite enabled)

注意: 在vps服务器上至少1GB内存以用于视频解码。

阅读剩余部分...