web中的“脚本”是何意?“脚本优化”又是何意?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web中的“脚本”是何意?“脚本优化”又是何意?相关的知识,希望对你有一定的参考价值。
想了解脚本的含义还得要从如何理解程序开始.1.可执行程序,无论是在windows中还是lunux或是unix系统中,都存在可执行程序.比如在windows中可执行程序都是以.exe结尾的程序.它的本质是利用vc或vb或其他你熟悉或不熟悉的编程软件编译源代码后生成的一种2进制数据.注意这里把它叫做数据.它的执行过程(比如你双击qq.exe软件会打开qq登陆窗口)就是系统把这2进制数据装入内存,然后把cpu的执行位置指向装入这代码的开始处,然后开始执行.你会得到响应的结果.比如得到qq的登陆窗口.
2.脚本程序(或就叫脚本或脚本语言):定义为按照某种已安排好的格式由操作系统中的脚本解释器逐句执行的文本.注意这里说它是文本而非2进制数据.其实两中说法在本质上都没什么区别,因为所有的东西在计算机中存储都是2进制的,只不过文本能够被文本解释器解释成我们熟悉的诸如abc123*&)等等的符号,而2进制数据则没什么规律,它只是数据.你可以用记事本打开一个.exe程序既一个2进制数据,会得到一堆乱码.脚本解释器会按照脚本程序的规定去执行已编译好了的程序,而我们直接执行的.exe程序则不需要脚本解释器去执行.
3.脚本分为很多种,比如web脚本,注册表脚本,还有dos中的以.bat结尾的批处理文件脚本等等.平时我们所说的vb脚本,java脚本,还有lunux中的shell脚本,都是基于脚本解释器去执行的.
至于web的什么脚本优化么,可能是web语言里的一种高效率的编写脚本的方法.要知道脚本的执行是靠脚本解释器按照脚本代码逐句执行那些已编译好了的程序.
我只能帮你这些了. 参考技术A 教本就是js之类客户端程序代码
eggor验证码是啥
参考技术A 首先在router.js中注册路由router.get('/util', controller.util.captcha); //前台显示图片验证码
router.post('/util', controller.util.verify); //后台比对验证码
登录后复制
然后写对应的controller文件
'use strict';
const Controller = require('egg').Controller;
class UtilController extends Controller
async captcha()
const ctx = this.ctx;
let captcha = await ctx.service.captcha.captcha();
ctx.response.type = 'image/svg+xml'; // 知道你个返回的类型
ctx.body = captcha.data; // 返回一张图片
ctx.session.login_code = captcha.text.toLowerCase();
ctx.session.maxAge = 1000 * 60 * 10;
async verify()
const type, code = ctx.query // 获取客户端发送的类型和验证码
const login_code, register_code = ctx.session // 获取session保存的验证码
let result_success = status: 0, message: 'success' // 定义返回结果
let result_error = status: 1, message: '验证码错误'
// 登陆验证码验证
if (type === '1') //进行验证并返回结果
ctx.body = code === login_code ? result_success : result_error
else
// 注册验证码验证
ctx.body = code === register_code ? result_success : result_error
module.exports = UtilController;
编写Service文件
const Service = require('egg').Service;
const svgCaptcha = require('svg-captcha');
class ToolsService extends Service
// 产生验证码
async captcha()
const captcha = svgCaptcha.create(
size: 4,
fontSize: 40,
width: 100,
ignoreChars: 'OoLi',
height: 40,
noise: 4,
background: '#cc9966'
);
this.ctx.session.code = captcha.text;
return captcha;
module.exports = ToolsService;
登录后复制

配置相应的插件
可以使用以下的npm install svg-captcha --save ; npm install egg-session --save就可以安装插件
module.exports.captcha =
enable: true,
package: 'svg-captcha',
;//添加svg插件并开启插件
module.exports.session =
enable: true,
package: 'egg-session',
;//使用session
登录后复制
前端点击图片实时刷新图片验证码
下面的js中在路由后面生成随机的字符串是为了清除浏览器缓存,可以刷新出新的验证码图片,"?"的作用就是加上一个参数,也就是随机字符串
<div>
<img src="/captcha" alt="验证码图片" onclick="this.src = this.src + '?' +Math.random()">
</div>
登录后复制
最后要强调的就是在前端使用img标签接收验证码,就是上面的html文件。
将验证码存入session中,在后台判断(session安全)
以上是关于web中的“脚本”是何意?“脚本优化”又是何意?的主要内容,如果未能解决你的问题,请参考以下文章