不懂的各类名词,以及学到的方法

SDK和API

SDK:Software Development Kit 的缩写,翻译过来——软件开发工具包。可见SDK是一个统称,任何辅助我们实现某种功能的工具,都可以称之为SDK。
API:我们一般称之为接口,而他相对SDK,可以理解为SDK工具包向我们用户提供的一个入口或方法;换而言之,就是我们通过API来使用SDK包的某种功能。
举个栗子:我们平时带耳机(有线耳机)听歌,耳机就相当于SDK,而耳机的插头就相当于API,我们通过连接耳机的插头(API),来达到用耳机听歌(SDK)的功能。


js获取链接地址中的参数

function kv(key){
    var v = new RegExp("[?&]"+key+"\=([^&]+)", "g").exec(location.search);
    return v ? v[1] : '';
}
//传入参数名,返回的就是参数值。

模版引擎

概念 :是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。
实现原理:模版引擎会利用正则匹配识别模版文件中的模版标识,并用数据替换其中的标识符。
常见模板引擎:ejs、jade(现改名为pug)、Handlebars、Nunjucks、Swing等。


单线程与多线程

单线程:每个正在运行的程序(即进程),至少包括一个线程,这个线程叫主线程;只有一个主线程的程序,称作单线程程序。
多进程:拥有多个线程的程序,称作多线程程序。子线程和主线程都是独立的运行单元,各自的执行互不影响,因此能够并发执行。
区别
单线程程序:只有一个线程,代码顺序执行,容易出现代码阻塞(页面假死)
多线程程序:有多个线程,线程间独立运行,能有效地避免代码阻塞,并且提高程序的运行性能


打包index入口文件时,遇到import是怎样处理的

当打包时遇到import引入另一个文件时,会将import的文件暂时加入一个队列中,等待当前文件打包完成后,会从队列中的文件依次进行打包;当遇到懒加载的文件时,会将此文件与当前文件同时进行打包,两者互不影响。


微信小程序不会存储cookie

在我们完成微信小程序登录后,cookie并不会被保存,这就导致我们去请求某些需要登录的cookie才能访问的api后,返回code:401。
解决方法:将登录接口返回的cookie保存下来,当请求需要cookie的api时,将cookie配置到header中,即可解决。

header: { 
    'content-type': 'application/x-www-form-urlencoded', 
    'cookie': res.cookies[0]
}

js实现唤醒页面打印机,打印当前页面内容

方法一:window.print()方法可直接唤醒页面打印机,打印当前页面body标签内的所有元素。
方法二:可利用iframe标签实现页面局部打印;在页面中插入iframe标签,并将其rameborder、height、width设置为0(为了让他不现实在页面上)通过js获取到iframe标签(var frameObj = $(document.getElementById(‘fra’).contentWindow.document.body);),然后将需要打印到局部内容添加到iframe标签的body里(frameObj.html(content)),可通过frameObj.append(),单独给大爷页面写样式,最后frameObj.contentWindow.print();实现打印。


js实现上传本地文件给后端

利用input标签实现基础功能:

<input class="uploadButton" type="file" accept=".xls,.xlsx" value="上传" oninput="chooseFile(this)"/>

其中accept属性可限制上传文件格式,但只对苹果系统有效,windows系统需对上传的文件拓展名进行筛选后,再上传。

function chooseFile(e) {
    var formData = new FormData();
    var file = $(".uploadButton").get(0).files[0], nameArrs = ['.xls', '.xlsx']
        lastName = file.name.substring(file.name.lastIndexOf('.',file.name.length));
    if (!nameArrs.includes(lastName)) {
        alert('对不起,系统仅支持*.xls、*.xlsx格式的文件,请您调整格式后重新上传,谢谢 !');
    } else {
        formData.append("file",$(".uploadButton").get(0).files[0]);
        $.ajax({
            type: 'post',
            processData: false,
            contentType: false,
            url: "/pass/api/file/excelupload",
            data: formData,
            success: function (data) {
                if (data.code == 200) {
                    alert('上传文件成功。');
                }
            }
        })    
    }
}

微信小程序如何在wxml文件标签内使用自定义方法

在该页文件夹内新建一个index.wxs文件,在文件内使用module.exports导出你要使用的方法;然后在wxml文件内引入此wxs文件,例:

<wxs module="match" src="./index.wxs"></wxs>

在需要使用此方法的地方使用match.方法名即可调用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值