0%
__init__.py的作用
发表于
分类于
Python
拥有 init.py 文件的文件夹被视为包(模块),可以通过 import 正常导入包内的文件,否则,会报 ImportError 错误。
当 import 包或包内模块的时候,会先执行 init.py 文件中的代码,因此可以通过 init.py 组织包内各个子模块,然后在包外文件导入它们时更加方便简洁。我们来看一个例子:
目录结构如下:
1 | - app |
移动Web适配
ArrayBuffer 介绍
ArrayBuffer 表示二进制数据的原始缓冲区,该缓冲区用于存储各种类型化数组的数据。是最基础的原始数据容器,无法直接读取或写入, 需要通过其他方式来读写。如:
1 | Int8Array 8位有符号整数 |
js 实现文件下载
发表于
分类于
JS
由于 js 无法对文件直接操作,所以通过 js 下载文件的原理是创建一个 标签,然后让其执行 click() 方法来进行下载。
具体代码如下:
1 | // 假设 data 为后台返回的 ArrayBuffer |
我们这里用到了 Blob 类,接下来就来讲一下 Blob 的用法。
js 上传图片并预览
jQuery Ajax 请求报错“Illegal invocation”
发表于
分类于
JS
Ajax 请求
发表于
分类于
JS
我们来看一下 jquery 实现的 Ajax 请求:
1 | const data = {'data': 'silence'}; |
注意:js 发送 json 数据时,发送的是 json 字符串而不是 json 对象。比如 {'data': 'silence'}
是 json 对象,发送时会报解析 json 失败的错误。应该发送的是 "{'data': 'silence'}"
,json 对象转换为 json 字符串可以使用 JSON.stringify()
。
json 字符串转换为 json 对象可以使用 JSON.parse()
。
js 的 format 方法实现
发表于
分类于
JS
js 自身并没有字符串格式匹配功能,但是我们可以基于 replace 方法实现一个 format 方法。
1 | // 字符串格式化函数 |
然后我们就可以使用它:
1 | let str = "my name is {0}, my age is {1}".format('silence', '23'); |