2020-07-06 html的a标签的download属性跨域 + css的cm与px + JS的单向链数据结构与复杂度 + JWT认证过程

132 篇文章 0 订阅
61 篇文章 0 订阅

2020-07-06 题目来源:http://www.h-camel.com/index.html

[html] 使用a标签的download属性下载文件会有跨域问题吗?如何解决?

a标签的download属性 定义了下载的链接地址,要求 a标签中必须有href属性。
<a href="/images/logo.png" download="/images/logo.png"> 点击链接 下载图片

下载文件:
var a = document.createElement('a')
a.download = row.fileName || 'pic'
a.href = row.src;
a.click()

预览文件:
window.open(row.src)

a.download在跨域中是不能执行成功的,需要下载到本地

let url = 'http://www.baidu.com/art/jobstorage/0-12385-54266485.mp4";         
var x = new XMLHttpRequest();
x.open("GET", url, true);
x.responseType = 'blob';
x.onload=function(e) {
       var url = window.URL.createObjectURL(x.response)
       var a = document.createElement('a');
       a.href = url
       a.download = 'xiazai'; //下载后的文件名
       a.click()
 }
 x.send();

如何解决a标签的跨域问题--实例:
<a onclick="downloadFile('www.tupian.com', 'test.jpg')">

function downloadFile (url, fileName) {//跨域文件路径、下载到本地的文件名
    var x = new XMLHttpRequest();
    x.open("GET", url, true);
    x.responseType = 'blob';
    x.onload=function(e) {
        var url = window.URL.createObjectURL(x.response)
        var a = document.createElement('a');
        a.href = url
        a.download = fileName;
        a.click()
    }
    x.send();
},

[css] 怎样把单位cm转换成px呢(在打印时有时会用到)?

在公制长度单位与屏幕分辨率进行换算时,必须用到一个DPI(Dot Per Inch 每英寸像素值)指标。网页打印中,默认采用的是96dpi,并非传闻的72dpi。
A4纸张的尺寸是210×297mm,按1英寸=25.41mm换算,即8.264×11.688英寸。

所以,A4纸96dpi下的分辨率是794×1123,这就是我们在制作网页的时候需要的像素。

但是打印机是无法满幅打印的,总要有页边距,所以我们在制作网页的时候必须减去页边距。 

例如大多网页的常用图片分辨率为72dpi,每英寸的像素为72px,按1英寸=25.41mm换算,可以得出:150*150mm的图片,像素长度是 420*420px.

[js] 写一个单向链数据结构的 js 实现并标注复杂度

什么是链表:
1. 链表需要使用指针,数组中可以直接访问任何位置的元素,而链表想要访问中间元素就必须从头开始。
2. 在内存中并不是连续的,10个人坐火车,坐的位置相互不挨着
3. 每个数据都保存了下一个数据的地址,利用这个地址去查找下一个元素,一次类推
4. 增加数据、删除数据某站又上来一个人X,这个人想坐在A和B中间,那他只需要把自己想要的位置告诉A(让A数据的下一个数据地址指向X),
然后从B那里离拿到原来B的地址(让X自己的下一个 数据的地址指向B)就行了。其他人都不用动。
5. 不能随机访问,必须从第一个数据开始查找。

数组:
1. 插入效率低
2. 可能会浪费内存
3. 必须要足够的的连续内存空间
4. 扩展性差

链表:
1. 插入删除快
2. 内存利用率高
3. 扩展灵活
4. 必须从第一个元素开始查找,查询效率低

实现一个包含,在尾部添加一项,在特定位置插入一项,移除一项,返回指定元素对应索引,判断链表是否为空以及返回链表长度这几个方法的单向链表 可以看这里 https://blog.csdn.net/weixin_34025151/article/details/91386030, 非常详细,附带源码

标注复杂度 http://muyiy.vip/question/program/115.html

[软技能] 说下JWT的认证过程

Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).
该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。
JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,
也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。

什么是JWT https://www.jianshu.com/p/576dbf44b2ae

JWT认证原理及使用 https://www.cnblogs.com/fiona-zhong/p/9951054.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值