js制作爬取大众点评的爬虫,JavaScript生成验证码并实现验证功能

动态加载js文件

前言

废话相当少说了,直接给大家贴代码了,具体代码如下所示:

不经常大家供给依靠参数差异来引进分裂的js文件,用html直接写标签满意不断大家的急需,计算三种格局,以及一块异步加载的各类须求

Node.js天生援助并发,不过对于习于旧贯了逐条编制程序的人,一开端会对Node.js不适于,例如,变量成效域是函数块式的(与C、Java分歧等);for循环体({})内引用i的值实际上是循环截至以往的值,因此引起种种undefined的主题素材;嵌套函数时,内层函数的变量并不可能立刻传输到外围(因为是异步)等等。

<html> 
<head> 
<title>验证码</title> 
<style type="text/css"> 
#code 
{ 
font-family:Arial; 
font-style:italic; 
font-weight:bold; 
border:0; 
letter-spacing:2px; 
color:blue; 
} 
</style> 
<script type = "text/javascript" src = "checkCode.js"> 
</script> 
</head> 
<body> 
<div> 
<input type = "text" id = "input"/> 
<input type = "button" id="code" onclick="createCode()"/> 
<input type = "button" value = "验证" onclick = "validate()"/> 
</div> 
</body> 
</html>

一.直接加载

一、 API分析

checkCode.js

<div id="divId"></div>
<script>

公众点评开放了询问食堂新闻的API,这里交付了都市与cityid中间的应和关系,

var code ; //在全局定义验证码 
//产生验证码 
window.onload = function createCode(){ 
code = ""; 
var codeLength = 4;//验证码的长度 
var checkCode = document.getElementById("code"); 
var random = new Array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R', 
'S','T','U','V','W','X','Y','Z');//随机数 
for(var i = 0; i < codeLength; i++) {//循环操作 
var index = Math.floor(Math.random()*36);//取得随机数的索引(0~35) 
code += random[index];//根据索引取得随机数加到code上 
} 
checkCode.value = code;//把code值赋给验证码 
} 
//校验验证码 
function validate(){ 
var inputCode = document.getElementById("input").value.toUpperCase(); //取得输入的验证码并转化为大写 
if(inputCode.length <= 0) { //若输入的验证码长度为0 
alert("请输入验证码!"); //则弹出请输入验证码 
} 
else if(inputCode != code ) { //若输入的验证码与产生的验证码不一致时 
alert("验证码输入错误!@_@"); //则弹出验证码输入错误 
createCode();//刷新验证码 
document.getElementById("input").value = "";//清空文本框 
} 
else { //输入正确时 
alert("^-^"); //弹出^-^ 
} 
}

二.异步加载,并发推行,但引入js内容不能一直利用

链接:

上述所述是小编给大家介绍的JavaScript生成验证码并实现认证功效,希望对大家具备协理,如若我们有此外疑问请给自己留言,小编会及时回复大家的。在此也特别多谢大家对台本之家网站的支撑!

//1.1 直接document.write
 document.write("<script src='test.js'><\/script>"); 
//1.2 动态改变已有script的src属性
 //页面中有<script src='' id="s1"></ script> 
document.getElementById('s1').src="test.js";
 //1.3 动态创建js
 var rootObject=document.getElementById("divId");
 var oScript = document.createElement( "script" );
 oScript.type = "text/javascript"; 
 oScript.src = test.js; //test.js方法中有一个方法function test(){alert("test");}
 rootObject.appendChild(oScript); 
 //2.0 调用js
 test();//在ie中不会出错,在firefox会出错,因为firefox默认为异步加载(在向服务器请求加载test.js文件的同时,继续向下执行了,调用test()方法,就自然找不到这个方法)

GET办法交给了酒馆的消息(JSON格式)。

你或然感兴趣的篇章:

  • JavaScript
    随机验证码的成形实例代码
  • JSP达成登陆作用之加多验证码
  • JS达成用户注册时获得短信验证码和倒计时作用
  • JavaScript登录验证码的达成
  • JS达成表单验证作用(验证手提式有线电话机号是还是不是留存,验证码倒计时)
  • JS 达成自由验证码功用

三.一块加载,单步加载,引进js内容能够直接行使

第一解释下GET参数的意思:

var Skip={};
//获取XMLHttpRequest对象(提供客户端同http服务器通讯的协议)
Skip.getXmlHttpRequest=function (){ 
 if ( window.XMLHttpRequest ) // 除了IE外的其它浏览器
 return new XMLHttpRequest() ; 
 else if ( window.ActiveXObject ) // IE 
return new ActiveXObject("MsXml2.XmlHttp") ; 
},
//导入内容
Skip.includeJsText =function (rootObject,jsText){ 
 if ( rootObject != null ){ 
 var oScript = document.createElement( "script" );
 oScript.type = "text/javascript"; 
//oScript.id = sId; 
//oScript.src = fileUrl; 
//oScript.defer = true; 
oScript.text = jsText; 
rootObject.appendChild(oScript); 
//alert(oScript.text);
 } 
 },
//导入文件
Skip.includeJsSrc =function (rootObject, fileUrl){ 
 if ( rootObject != null ){ 
 var oScript = document.createElement( "script" ); 
 oScript.type = "text/javascript"; 
 oScript.src = fileUrl; 
 rootObject.appendChild(oScript); 
 } 
},
//同步加载
Skip.addJs=function(rootObject, url){ 
 var oXmlHttp = Skip.getXmlHttpRequest() ; 
 oXmlHttp.onreadystatechange = function(){//其实当在第二次调用导入js时,因为在浏览器当中存在这个*.js文件了,它就不在访问服务器,也就不在执行这个方法了,这个方法也只有设置成异步时才用到
if ( oXmlHttp.readyState == 4 ){ //当执行完成以后(返回了响应)所要执行的
 if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 ){ //200有读取对应的url文件,404表示不存在这个文件
 Skip.includeJsSrc( rootObject, url); 
 } else{ 
 alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ; 
 } 
} 
} 
//1.True 表示脚本会在 send() 方法之后继续执行,而不等待来自服务器的响应,并且在open()方法当中有调用到onreadystatechange()这个方法。通过把该参数设置为 "false",可以省去额外的 onreadystatechange 代码,它表示服务器返回响应后才执行send()后面的方法.
//2.同步执行oXmlHttp.send()方法后oXmlHttp.responseText有返回对应的内容,而异步还是为空,只有在oXmlHttp.readyState == 4时才有内容,反正同步的在oXmlHttp.send()后的操作就相当于oXmlHttp.readyState == 4下的操作,它相当于只有了这一种状态.
oXmlHttp.open('GET', url, false); //url为js文件时,ie会自动生成 '<script src="*.js" type="text/javascript"> </scr ipt>',ff不会 
oXmlHttp.send(null); 
Skip.includeJsText(rootObject,oXmlHttp.responseText);
}
};
var rootObject=document.getElementById("divId");
Skip.addJs(rootObject,"test.js")//test.js文件中含有funciotn test(){alert("test");}
test();//即使马上调用也不会出错了.
</script>

    
1、start为步进数,表示分步获取新闻的index,与nextStartIndex字段相对应;

总结:

     2、cityid代表城市id,比如,伊丽莎白港相应于110;

1.
ie动态加载js文件时,它默许就为一齐,能够毫不安装同步(也可直调用Skip.includeJsSrc())

    
3、regionid意味着区域id,每多少个id代表意义在start=0rangeNavs字段中有表达;

  1. ff动态加载js文件时,它默以为异步,要设置成同步,加载完直接调用才不会出错

  2. 任凭ie依然ff在动态加载js内容时,没有央浼服务器,不会设有异步难题

    
4、categoryid代表找寻厂家的归类id,譬喻,美味山珍海味对应的id为10,具体每四个id的意义参见在start=0categoryNavs字段;

注:无论ie照旧ff在页面加载js时(即实行总体页面),都感到一齐的加载,除非设置script的习性defer=”true”(此属性好像也只是对ie有效)

    
5、sortid代表公司结果的排序格局,比如,0对应智能排序,2对应评价最佳,具体每二个id的意义参见在start=0时sortNavs字段。

如上就是小编为大家带来的同台异步动态引进js文件的两种办法计算的全部内容了,希望对大家全部协助,多多帮衬脚本之家~

在GET再次来到的JSON串中list字段为厂商列表,id表示公司的id,作为商铺的独一标志。在重返的JSON串中是从未商场的意气、碰到、服务的评分音讯以及经纬度的;

您也许感兴趣的篇章:

  • javascript
    动态修改css样式方法汇总(多样艺术)
  • 动态加载JS文件的二种方法
  • 动用jQuery动态加载js脚本文件的艺术
  • JS动态增多option和删除option(附实例代码)
  • js给onclick事件赋值,动态传参数实例解说
  • js form action动态修改章程
  • jquery及js完结动态加载js文件的章程
  • jquery
    getScript动态加载JS方法创新详解
  • AngularJs依照访问的页面动态加载Controller的减轻方案
  • JS动态创建成分的二种格局
  • js动态引进的八种办法

     
由此大家还须要爬取八个厂家页面:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注