perl 异步请求和JS对比
perl 异步和js对比;
/js**************
$(function(){
function isPhone(str){
var regex = /[0-9]{11,11}/;
return regex.test(str);
}
var _bt = $(".bt");
_bt.on("click",function(){
var tel = $("[name='tel']").val();
var env = $("[name='env']").val();
if(isPhone(tel)){
var data = {};
data.phone = tel;
data.env = env;
var successfn = function(jdata){
if(jdata[0][2] != undefined){
$(".gridtable").empty();
var _HTML="<tr><th>ENV </th><th>TEL</th><th>Code</th></tr>";
$.each(jdata,function(i,val){
_HTML=_HTML+"<tr><td>"+env+"</td><td>"+tel+"</td><td>"+jdata[i][0]+"\n"+jdata[i][1]+"</td></tr>";
});
$(".gridtable").html(_HTML);
}else{
$(".gridtable").empty();
var _HTML="<tr><th>ENV </th><th>TEL</th><th>Code</th></tr>";
_HTML = _HTML+"<tr><td>"+env+"</td><td>"+tel+"</td><td>"+jdata[0][1]+"</td></tr>";
$(".gridtable").html(_HTML);
}
};
var errorfn = function(jdata){
alert("数据返回出错");
};
$.axg(
"/DEVOPS/index.php/Codequery/getcode",
data, ##data表示请求接口的参数
successfn,
errorfn
);
}else{
alert("输入的手机号码不符合规范");
}
});
});
/perl***********
use AnyEvent::HTTP;
use HTTP::Date qw(time2iso str2time time2iso time2isoz);
my $cv = AnyEvent->condvar;
http_request GET => 'http://120.55.118.6:3000/api/env?ip=192.168.32.101',timeout => 20, sub {
my ($body, $hdr) = @_;
$time2=time2iso(time());
print "\$time2 is $time2\n";
print "$body\n";
};
$time1=time2iso(time());
print "\$time1 is $time1\n";
print "11111111111111111111\n";
$cv->recv();
异步请求的结果 http_request GET => 'http://120.55.118.6:3000/api/env?ip=192.168.32.101' 返回给函数
sub {
my ($body, $hdr) = @_;
$time2=time2iso(time());
print "\$time2 is $time2\n";
print "$body\n";
};
再来看一个奇葩的perl 异步调用:
#!/usr/bin/perl
use AnyEvent;
use AnyEvent::HTTP;
my $cv = AnyEvent->condvar;
sub doit{
my $url = shift ;
return if not defined $url;
$cv->begin;
http_get( "$url", sub { done( $url, @_ ) } );
print "1111111111111111\n";
}
sub done {
my ($url, $content, $hdr) = @_;
$cv->end();
print "Search: $url\tStatus: ", $hdr->{Status}, "\n";
print "\$content is $content\n";
};
&doit('http://120.55.118.6:3000/api/env?ip=192.168.32.101');
print "222222222222222222\n";
$cv->recv();
&doit('http://120.55.118.6:3000/api/env?ip=192.168.32.101');
传递的参数为http://120.55.118.6:3000/api/env?ip=192.168.32.101
http_get( "$url", sub { done( $url, @_ ) } ); 异步请求的结果 传递给函数 sub { done( $url, @_ ) } ,结果传递给函数done
perl 异步请求和JS对比的更多相关文章
- ajax的xmlHttpRequest异步请求和Springmvc的sendRedirect失效问题
参考: Ext 提交表单用的异步提交Ajax.Ajax在发送请求时后台返回的数据(json或者html页面)在其回调函数中处理. 你这个相当于后台把Center_right.jsp页面已经返回给前台 ...
- js中ajax连接服务器open函数的另外两个默认参数get请求和默认异步(open的post方式send函数带参数)(post请求和get请求区别:get:快、简单 post:安全,量大,不缓存)(服务器同步和异步区别:同步:等待服务器响应当中浏览器不能做别的事情)(ajax和jquery一起用的)
js中ajax连接服务器open函数的另外两个默认参数get请求和默认异步(open的post方式send函数带参数)(post请求和get请求区别:get:快.简单 post:安全,量大,不缓存)( ...
- 请给出异步加载js方案
请给出异步加载js方案,不少于两种 默认情况javascript是同步加载的,也就是javascript的加载时阻塞的,后面的元素要等待javascript加载完毕后才能进行再加载,对于一些意义不是很 ...
- Ajax相关——get请求和post请求的区别
一.完整的URL由以下几部分组成: scheme:通信协议,常用的有:http/ftp. host:主机,服务器(计算机)域名或IP地址 port:端口,整数,可选,省略时使用默认端口,http的默认 ...
- Ember.js和Vue.js对比,哪个框架更优秀?
本文由葡萄城技术团队于博客园翻译并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. JavaScript最初是为Web应用程序创建的.但是随着前端技术的 ...
- Ajax中get请求和post请求
我们在使用Ajax向服务器发送数据时,可以采用Get方式请求服务器,也可以使用Post方式请求服务器,那么什么时候该采用Get方式,什么时候该采用Post方式呢? Get请求和Post请求的区别: 1 ...
- slave IO流程之二:注册slave请求和dump请求
slave IO流程已经在http://www.cnblogs.com/onlyac/p/5815566.html中有介绍 这次我们要探索注册slave请求和dump请求的报文格式和主要流程. 一.注 ...
- loadrunner录制脚本如何选择使用get请求和post请求的方式
在loadrunner工具里录制脚本时常常会用到get请求和post请求,有关loadrunner常用的这两类的请求主要有: get请求: web_url 和 web_link post请求: web ...
- iOS开发网络篇—GET请求和POST请求
iOS开发网络篇—GET请求和POST请求 一.GET请求和POST请求简单说明 创建GET请求 // 1.设置请求路径 NSString *urlStr=[NSString stringWithFo ...
随机推荐
- DataSource绑定DataTable.Select()显示system.data.DataRow问题解决的方法
有时候我们须要在控件中绑定DataTable中设定条件过滤后的数据,此时,在winForm环境中,一些控件不能正确绑定并显示数据内容.这是由于DataTable.Select()返回的是DataRow ...
- iframe,window,滚动栏的一些问题
1.Iframe不显示边框:frameborder=0 2.Iframe不显示横向滚动栏:在iframe所指向的页面增加: <style> html{overflow-x:hidden;} ...
- 关于DataGridViewComboBoxCell修改后提交数据源
最近在项目遇到一个功能实现.是在DataGridView中DataGridViewComboboxColumn列绑定数据源, DisplayMember为数据表的Name列,ValueMember是数 ...
- Rfc2898DeriveBytes解密如何通过java实现
原文 Rfc2898DeriveBytes解密如何通过java实现 这个找了半天,还是不太懂,密码一点不懂,直接上来问了 Rfc2898DeriveBytes对应的是PBKDF2WithHmacSHA ...
- 【译】在Asp.Net中操作PDF - iTextSharp - 绘制矢量图
原文 [译]在Asp.Net中操作PDF - iTextSharp - 绘制矢量图 在上一篇iTextSharp文章中讲述了如何将现有的图片插入PDF中并对其进行操作.但有时,你需要在PDF中绘制不依 ...
- Spring Web MVC中的页面缓存支持 ——跟我学SpringMVC系列
Spring Web MVC中的页面缓存支持 ——跟我学SpringMVC系列
- JavaScript实现获取table中某一列的值
JavaScript实现获取table中某一列的值 1.实现源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...
- Eclipse用法和技巧二十一:工程的展示途径
用eclipse阅读代码的时候,有时候代码会变成如图一所示的样子,有时候可能是图二的样子.为什么有时候是图一有时候是图二,笔者也不是很清楚.不过怎么手动设置成图一图二,就是接下来要讲的东西. 1 ...
- 查询mysql哪些表正在被锁状态
1.查进程,主要是查找被锁表的那个进程的ID SHOW PROCESSLIST; 2.kill掉锁表的进程ID KILL 10866;//后面的数字即时进程的ID
- 通过demo搞懂encode_utf8和decode_utf8
perl 编码问题: use utf8表示代码使用UTF-8写的 [root@wx03 0710]# cat a1.pl #use utf8; my $str='测试utf8字符集'; print $ ...