ajax设置async:false 执行同步加载失败

代码结构:
console.log("1");
$.ajax({
async:false,
url:"url",
dataType:"jsonp",
data:{},
success:function(data){
console.log("2");
}
})
console.log("3");

执行的结果是1 3 2,怎么回事啊,已经设置async是false了,,我想要执行的结果是1 2 3,别说把3的执行放到success函数里,那样直接异步加载也可以。

4个回答

jsonp是都是异步的,因为用的script加载,设置async没用,要使用返回值只能回调里面执行相关js代码

在跨域的情况下,ajax 同步失效
ajax是不能跨域的
jsonp的实现不是ajax,而是script节点,所以对ajax有效的配置未必对jsonp有效

使用ajax方式向后台发起请求,请求成功后在success收到回调,因为向后台执行请求后台会有相应的相应时间,所以3会比2提前输出。
为什么3会在2之前?
那是因为你再调用ajax的时候程序只负责让ajax去执行请求,并不是告知程序等待success成功后在继续调用下面的内容
所以你在执行了ajax的时候只是相当于向后台发起了请求,程序还会继续向下运行

Jquery的API,说的就是说JSONP格式,不支持跨域同步的,你试一下json格式,是可以同步的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jquery 超时设置 同步

function load(){ $("#tips").html("加载中..."); var ajaxTimeout = $.ajax({ timeout:100, async:false, type:"POST", data:{captcha:"123456",userMobile:"13726768831"}, url:"http://14.29.1.22:8081/fbAccountAction!verifyCode.action", error:function(jqXHR, textStatus, errorThrown){ if(textStatus=="timeout"){ ajaxTimeout.abort(); alert("加载超时,请重试"); }else{ alert(textStatus); } }, success:function(msg){ alert("成功") } }); } 想用jquery同步机制设置超时;当async为true异步时,超时设置没问题,当async为false时,要怎么设置

jsp页面的$.ajax在网站上无法执行,在eclipse中运行正常

jsp页面的$.ajax在网站上无法执行,在eclipse中运行正常,浏览器显示“Can't find variable: $ 以下是JSP中的fuction中的代码 $.ajax({ type : "post", async : false, //同步执行 url : "bar.do", data : para, dataType : "json", success : function(result) { if (result) {

关于实现列表加载loading效果?

<asp:Button runat="server" SkinID="btnSearch" Text="" ID="btnSearch" OnClick="btn_search_Click"/> 这是我是一个查询按钮,数据是通过btn_search_Click 触发后台相关方法,实现列表的数据绑定,由于数据量大,想实现加载效果,写了下面这段js,然后查询按钮调用,但是这个好像跟onclick时间同步的,效果实现不了 function JudgeUserName() { $.ajax({ type: "POST", url: "DoneTaskList.aspx", dataType: "text", data: "loading=loading", anyc: false, beforeSend: function (XMLHttpRequest) { $("#loadingDiv").show() }, success: function (data, textStatus) { if (data.indexOf("success") > -1) { $("#loadingDiv").hide(); } }, complete: function (XMLHttpRequest, textStatus) { }, error: function () { } }); }

ECharts怎样用AJAX从数据库中调数据?

下面代码中是ECharts用AJAX从数据库中调数据,但前端页面无法显示数据,求问代码中哪里有误? ``` map1.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <div id="myChart" style="height:500px;"></div> <script src="./js/jquery-1.8.3.min.js"></script> <script> $.ajax({ type: "post", async: false, //同步执行 url: "mapdata.php", dataType: "json", //返回数据形式为json success: function (result) { myChart.hideLoading(); //隐藏加载动画 myChart.setOption({ //渲染数据 series: [{ // 根据名字对应到相应的系列 name: '2015年GDP', data: result }] }); }, error: function () { alert("请求数据失败!"); } }); </script> <script src="./js/echarts.js"></script> <script> require.config({ paths: { echarts: './js' } }); require( [ 'echarts', 'echarts/chart/map' // 按需加载所需图表,如需动态类型切换功能,别忘了同时加载相应图表 ], function (ec) { var myChart = ec.init(document.getElementById('myChart')); var option = { title: { text: '2015年GDP统计数据', subtext: '数据来源网络(单位:亿元)', left: 'center' //标题居中 }, tooltip: { //提示工具, trigger: 'item', formatter: "{a} <br/>{b} : {c}亿元" }, visualMap: { //视觉映射组件,可以根据范围调节数据变化 min: 0, //最小值 max: 10, //最大值 left: 'left', //位置 top: 'bottom', orient: 'horizontal', //水平 text: ['高', '低'], // 文本,默认为数值文本 calculable: true //是否启用值域漫游,即是否有拖拽用的手柄,以及用手柄调整选中范围。 }, toolbox: { //工具栏 show: true, orient: 'vertical', //垂直 left: 'right', top: 'center', feature: { mark: { show: true }, saveAsImage: { show: true } //保存为图片 } }, series: [{ name: '2015年GDP', type: 'map', mapType: 'china', //使用中国地图 roam: false, //是否开启鼠标缩放和平移 itemStyle: { normal: { label: { show: true } }, emphasis: { label: { show: true } } }, data: [] }] }; //myChart.showLoading(); //预加载动画 myChart.setOption(option); //渲染地图 } ); </script> </body> </html> mapdata.php <?php include_once('connect.php'); //连接数据库 //查询数据 $sql = "select * from echarts_map"; $query = mysql_query($sql); while ($row = mysql_fetch_array($query)) { $arr[] = array( 'name' => $row['province'], 'value' => $row['gdp'] ); } mysql_close($q); echo json_encode($arr); //输出json格式数据 ?> connect.php <?php $q = mysql_connect("localhost","root","dglgxx"); if(!$q) { die('Could not connect: ' . mysql_error()); } mysql_query("set names utf8"); //以utf8读取数据 mysql_select_db("test02",$q); //数据库 ?> ``` 数据库的表 ![图片说明](https://img-ask.csdn.net/upload/201607/13/1468397398_141664.png)

echart图表不显示的问题

<script type="text/javascript"> // 路径配置 require.config({ paths : { echarts : 'http://echarts.baidu.com/build/dist' } }); // 使用 require([ 'echarts', 'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载 ], drewEcharts ); function drewEcharts(ec) { // 基于准备好的dom,初始化echarts图表 var myChart = ec.init(document.getElementById('main')); var option = { tooltip : { show : true }, legend : { data : [ '人数' ] }, xAxis : [ { type : 'category', data :(function(){ var arr=[]; $.ajax({ type : "post", async : false, //同步执行 url : "bar.do", data : {}, dataType : "json", //返回数据形式为json success : function(result) { if (result) { /* alter("first"); */ for(var i=0;i<result.length;i++){ console.log(result[i].name); arr.push(result[i].name); } } }, error : function(errorMsg) { alert("不好意思,图表请求数据失败啦!"); myChart.hideLoading(); } }) return arr; })() } ], yAxis : [ { type : 'value' } ], series : [ { "name" : "人数", "type" : "bar", "data" : (function(){ var arr=[]; $.ajax({ type : "post", async : false, //同步执行 url : "bar.do", data : {}, dataType : "json", //返回数据形式为json success : function(result) { if (result) { for(var i=0;i<result.length;i++){ console.log(result[i].num); arr.push(result[i].num); } } }, error : function(errorMsg) { alert("不好意思,大爷,图表请求数据失败啦!"); myChart.hideLoading(); } }) return arr; })() } ] }; // 为echarts对象加载数据 myChart.setOption(option); } </script>![图片说明](https://img-ask.csdn.net/upload/201705/24/1495612140_317086.png)

echerts 加载数据,出不来,

``` <script type="text/javascript"> function loadData(option) { $.ajax({ type : 'post', //传输类型 async : false, //同步执行 url : 'billecharts.action', //web.xml中注册的Servlet的url-pattern data : {}, dataType : 'json', //返回数据形式为json success : function(result) { if (result) { //初始化xAxis[0]的data option.xAxis[0].data = []; for (var i=0; i<result.length; i++) { option.xAxis[0].data.push(result[i].name); } //初始化series[0]的data option.series[0].data = []; for (var i=0; i<result.length; i++) { option.series[0].data.push(result[i].num); } } }, error : function(errorMsg) { alert("加载数据失败"); } });//AJAX }//loadData() var myChart = echarts.init(document.getElementById('main')); var option = { tooltip : { show : true }, legend : { data : [ '收入','支出'] }, xAxis : [ { type : 'category' }], yAxis : [ { type : 'value' } ], series : [ { name : '收入', type : 'bar', }, { name : '支出', type : 'bar', } ] }; //加载数据到option loadData(option); //设置option myChart.setOption(option); </script> ``` ``` 返回前台的格式 [{"bi_date":1504869888000,"bi_id":1,"expend":2000,"income":4000,"remark":"酒店支出"}] ``` 求大神解决,刚刚接触这个

echarts获取mysql中的数据可视化,legend怎么才能跟柱状图的颜色对应起来?

``` <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'echart.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript" src="http://echarts.baidu.com/build/dist/echarts.js"></script> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript"> // 路径配置 require.config({ paths : { echarts : 'http://echarts.baidu.com/build/dist' } }); // 使用 require([ 'echarts', 'echarts/chart/bar' ,'echarts/chart/line'// 使用柱状图就加载bar模块,按需加载 ], drewEcharts ); function drewEcharts(ec) { // 基于准备好的dom,初始化echarts图表 var myChart = ec.init(document.getElementById('main')); var option = { color: ['#008b00', '#ffff00', '#ff7f00', '#cd0000','#0000cd'],//绿色,黄色,橙色,红色,蓝色 title:{ text: 'DECG', subtext: '物理量待定' }, //提示样式 tooltip : { show : true, trigger: 'axis', axisPointer: { //坐标轴指示器 crossStyle: { color: '#999' } } }, legend : { data: [{name: 'Good',textStyle:{color: '#008b00'}}, {name:'Watch',textStyle:{color: '#ffff00'}}, {name: 'Warning',textStyle:{color:'#ff7f00'}}, {name:'Abnormal value',textStyle:{color:'#cd0000'}}, {name:'Baseline',textStyle:{color:'#0000cd'}} ], orient: 'horizontal', x: 'center', y: 'bottom', padding: 0, itemWidth: 10, textStyle: { fontWeight: 'bold', fontSize:14 } }, grid: { left: '3%', right: '2%', top: '8%', bottom: '2%', containLable: true }, toolbox: { show : true, feature : { dataView : {show: true, readOnly: false}, magicType : {show: true, type: ['line', 'bar']}, restore : {show: true}, saveAsImage : {show: true} } }, calculable : true, xAxis : [ { type : 'category', //设置轴线属性 axisLine:{ lineStyle:{ color: '#4d4d4d' } }, axisLabel: { //x轴字体样式 interval:0, rotate:70, margin:2, textstyle: { color:"#222", fontSize: '16' }}, data :(function(){ var arr=[]; $.ajax({ type : "post", async : false, //同步执行 url : "bar.do", //web.xl中注册的Servlet的url-pattern data : {}, dataType : "json", //返回数据形式为json success : function(result) { if (result) { for(var i=0;i<result.length;i++){ console.log(result[i].name); arr.push(result[i].name); } } }, error : function(errorMsg) { alert("图表请求数据失败!"); myChart.hideLoading(); } }) return arr; })() }], yAxis : [ { type : 'value', name: 'F/N', nameTextStyle:{//坐标轴标签设置 fontWeight: 'bold', fontiSize: '28' }, interval: 10, fontSize: '20', axisLine: { lineStyle:{ color: '#4d4d4d' } }, axisLabel: {//y轴字体样式 formatter: '{value}', textStyle: { color:"#222", fontSize: '16' } } }], series : [{ name : 'Good', type : 'bar', barGap: '1%', barCategoryGap: '10%', itemStyle:{ normal:{ color: function(params){ var index_num = params.data; //alert(param.value); if (index_num < 30){ return '#008b00'; //绿色 }else if (index_num>=30 && index_num<50){ return '#ffff00'; //黄色 }else if (index_num>=50 && index_num<60){ return '#ff7f00'; //橙色 }else{ return '#cd0000'; //红色 } } }, }, //barWidth: 10, data :(function(){ var arr=[]; $.ajax({ type : "post", async : false, //同步执行 url : "bar.do", data : {}, dataType : "json", //返回数据形式为json success : function(result) { if (result) { for(var i=0;i<result.length;i++){ console.log(result[i].num); arr.push(result[i].num); } } }, error : function(errorMsg) { alert("不好意思,大爷,图表请求数据失败啦!"); myChart.hideLoading(); } }) return arr; })() } , { name : 'Watch', type : 'bar', barGap: '1%', barCategoryGap: '10%', itemStyle:{ normal:{ color: function(params){ var index_num = params.data; //alert(param.value); if (index_num>=30 && index_num<50){ return '#ffff00'; //绿色 }else if (index_num < 30){ return '#008b00'; //黄色 }else if (index_num>=50 && index_num<60){ return '#ff7f00'; //橙色 }else{ return '#cd0000'; //红色 } } }, }, //barWidth: 10, data :(function(){ var arr=[]; $.ajax({ type : "post", async : false, //同步执行 url : "bar.do", data : {}, dataType : "json", //返回数据形式为json success : function(result) { if (result) { for(var i=0;i<result.length;i++){ console.log(result[i].num); arr.push(result[i].num); } } }, error : function(errorMsg) { alert("不好意思,大爷,图表请求数据失败啦!"); myChart.hideLoading(); } }) return arr; })() }, { name : 'Warning', type : 'bar', barGap: '1%', barCategoryGap: '10%', itemStyle:{ normal:{ color: function(params){ var index_num = params.data; //alert(param.value); if (index_num < 30){ return '#008b00'; //绿色 }else if (index_num>=30 && index_num<50){ return '#ffff00'; //黄色 }else if (index_num>=50 && index_num<60){ return '#ff7f00'; //橙色 }else{ return '#cd0000'; //红色 } } }, }, //barWidth: 10, data :(function(){ var arr=[]; $.ajax({ type : "post", async : false, //同步执行 url : "bar.do", data : {}, dataType : "json", //返回数据形式为json success : function(result) { if (result) { for(var i=0;i<result.length;i++){ console.log(result[i].num); arr.push(result[i].num); } } }, error : function(errorMsg) { alert("不好意思,大爷,图表请求数据失败啦!"); myChart.hideLoading(); } }) return arr; })() }, { name : 'Abnormal value', type : 'bar', barGap: '1%', barCategoryGap: '10%', itemStyle:{ normal:{ color: function(params){ var index_num = params.data; //alert(param.value); if (index_num < 30){ return '#008b00'; //绿色 }else if (index_num>=30 && index_num<50){ return '#ffff00'; //黄色 }else if (index_num>=50 && index_num<60){ return '#ff7f00'; //橙色 }else{ return '#cd0000'; //红色 } } }, }, //barWidth: 10, data :(function(){ var arr=[]; $.ajax({ type : "post", async : false, //同步执行 url : "bar.do", data : {}, dataType : "json", //返回数据形式为json success : function(result) { if (result) { for(var i=0;i<result.length;i++){ console.log(result[i].num); arr.push(result[i].num); } } }, error : function(errorMsg) { alert("不好意思,大爷,图表请求数据失败啦!"); myChart.hideLoading(); } }) return arr; })() }, { name: 'Baseline', type: 'line', smooth:true, yAxisIndex: 0, symbolSize:0, //拐点圆的大小 itemStyle:{ normal:{ color: '#0000cd', } }, data: [53,30,29,40,18,30,9,17,64,30,48,12,30,38,20,31,38,53,38,51,9,17] } ], //控制每次只显示固定柱子数目 dataZoom:[{ type:'inside',//inside,slider此处只列举inside start:0, end:9,//dataZoom-inside.start 和 dataZoom-inside.end 共同用 百分比 的形式定义了数据窗口范围。 xAxisIndex:0,//不指定时,当 dataZoom-inside.orient 为 'horizontal'时,默认控制和 dataZoom 平行的第一个 xAxis。但是不建议使用默认值,建议显式指定。 filterMode:'none',//dataZoom 的运行原理是通过 数据过滤 来达到 数据窗口缩放 的效果。数据过滤模式的设置不同,效果也不同。('filter','weakfilter','empty','none')http://echarts.baidu.com/option.html#dataZoom-inside zoomLock:true,//只能拖动不可缩放,若无需禁止缩放设置为false或者去除即可 }] }; myChart.setOption(option); // 为echarts对象加载数据 myChart.setOption(option); } sideBarChart.resize();//修改echarts容器大小 </script> </head> <body> <div id="main" style="height: 550px; width: 1100px"></div> </body> </html> ``` 在mysql中取出数据后,按照数值范围对数据进行分类,不同类别的数据显示不同颜色的柱子。 实现结果: ![图片说明](https://img-ask.csdn.net/upload/201907/16/1563266320_869864.png) 求教大神 怎么修改代码,让legend显示与柱子对应的颜色?

js转时间,从后台取数据,。mysql ,转换时间

```function loadData(option) { $.ajax({ type : 'post', //传输类型 async : false, //同步执行 url : 'billecharts.action', //web.xml中注册的Servlet的url-pattern data : {}, dataType : 'json', //返回数据形式为json success : function(result) { if (result) { //初始化xAxis[0]的data option.xAxis[0].data = []; for (var i=0; i<result.length; i++) { option.xAxis[0].data.push(result[i].bi_date); } //初始化series[0]的data option.series[0].data = []; for (var i=0; i<result.length; i++) { option.series[0].data.push(result[i].expend); } option.series[1].data = []; for (var i=0; i<result.length; i++) { option.series[1].data.push(result[i].income); } } }, error : function(errorMsg) { alert("加载数据失败"); } });//AJAX }//loadData() var myChart = echarts.init(document.getElementById('main')); var option = { tooltip : { show : true }, legend : { data : [ '支出','收入' ] }, xAxis : [ { type : 'category', } ], yAxis : [ {} ], series :[{ name : '支出', type : 'bar', }, { name : '收入', type : 'bar', } ] }; //加载数据到option loadData(option); //设置option myChart.setOption(option); </script> ``` 这是个echarts 我要他x轴把时间转换下,不会转,

jqery dataTable请求获取到新数据后,表格不刷新

js代码 ``` var oTable = $('#sample_editable_1').dataTable({ "aLengthMenu": [ [5, 15, 20, -1], [5, 15, 20, "All"] // change per page values here ], // set the initial value "iDisplayLength": 15, "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>", "sPaginationType": "bootstrap", "oLanguage": { "sLengthMenu": "_MENU_ 每页显示条数", "oPaginate": { "sPrevious": "上一页", "sNext": "下一页" } }, "aoColumns" : [{ 'mDataProp' : "clazzName", 'sDefaultContent':'' },{ "mDataProp" : "course.courseName", 'sDefaultContent':'' }, { "mDataProp" : "teacher.userName", 'sDefaultContent':'' } , { "mDataProp" : "laboratory.labName", 'sDefaultContent':'' } , { "mDataProp" : "", 'sDefaultContent':'', "fnRender" : function(o,val){ return "<a class='edit' href='javascript:;'>编辑</a>" } }, { "mDataProp" : "id", 'sDefaultContent':'', "fnRender" : function(o,val){ return "<a class='delete' href='javascript:;'>删除</a><input id='saveId' type='hidden' value=\""+val+"\">" } }], "bProcessing":false, "bServerSide":true, 'sAjaxDataProp': 'aaData', "sAjaxSource":"/labAdmin/getClazzList?labId="+labId, "fnServerData":function ( sSource,aoData, fnCallback) { $.ajax({ url : sSource,//这个就是请求地址对应sAjaxSource data : {"aoData":JSON.stringify(aoData)},//这个是把datatable的一些基本数据传给后台,比如起始位置,每页显示的行数 type : 'post', dataType : 'json', async : false, success :fnCallback, error : function(msg) { } }); } }); ``` 页面刷新后的情况: ![图片说明](https://img-ask.csdn.net/upload/201605/18/1463543123_798520.jpg) 页面刷新后请求返回情况:(共6条) ![图片说明](https://img-ask.csdn.net/upload/201605/18/1463543018_987557.jpg) 在即时模糊框里输入查询信息后的请求返回情况:(可以看到只有两条) ![图片说明](https://img-ask.csdn.net/upload/201605/18/1463543068_795680.jpg) 但是表格并没有刷新:![图片说明](https://img-ask.csdn.net/upload/201605/18/1463543112_950086.jpg)

请问大神,Echarts如何点击div改变图的大小?

我想做到点击后放大,再点击缩小,请问该怎么做? 附上jsp ``` <%@ page contentType="text/html;charset=UTF-8"%> <%@ include file="/WEB-INF/views/include/taglib.jsp"%> <html> <head> <title>温度管理</title> </head> <div id="d" style="width: 150px; height: 68px;" ></div> <body> <script type="text/javascript" src="/jeesite/static/js/echarts/echarts.js"></script> <script type="text/javascript" src="/jeesite/static/jquery/jquery-1.8.3.js"></script> <script type="text/javascript"> var myChart = echarts.init(document.getElementById('d')) option = { title : { text : '实时温度', textStyle : { fontSize : 20, color : [ '#3398DB' ], } }, //颜色渐变 visualMap : { min : 0, max : 80, left : 'left', top : 'bottom', text : [ '高', '低' ], // 文本,默认为数值文本 calculable : true, inRange : { color : [ '#00FF00', '#32CD32', '#2E8B57', '#FF0000', '#B22222', '#8B0000' ] } }, color : [ '#3398DB' ], tooltip : { trigger : 'axis', axisPointer : { // 坐标轴指示器,坐标轴触发有效 type : 'shadow' // 默认为直线,可选为:'line' | 'shadow' }, feature : { mark : { show : true }, dataView : { show : true, readOnly : false }, restore : { show : true }, savaAsImage : { shwo : true } } }, grid : { left : '3%', right : '4%', bottom : '3%', containLabel : true }, grid : { y2 : 140 }, xAxis : [ { type : 'category', data : [], axisTick : { alignWithLabel : true }, axisLabel : { interval : 0, rotate : -30, } }, { type : 'category', data : [], axisTick : { alignWithLabel : true }, axisLabel : { interval : 0, rotate : -30, } } ], legend : { data : [ '当前温度' ] }, yAxis : [ { type : 'value' } ], series : [ { name : "", type : 'bar', barWidth : '60%', //顶部显示温度'top' label : { normal : { show : true, position : 'top' } }, data : [] } ] }; var tagId = []; var temperature = [];//温度信息 var addTime = [];//读取时间 var remarks = [];//备注信息 $.ajax({ type : "post", async : true, //异步请求:同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行 url : "${ctx}/temperature/tblTem/allTem", data : { }, dataType : "json", success : function(result) { //请求成功时执行该函数内容,result即为服务器返回的json对象 // alert('实时温度系统'); for (var i = 0; i < result.length; i++) { temperature.push(result[i].temperature); addTime.push(result[i].addTime); remarks.push(result[i].remarks); tagId.push(result[i].tagId); } myChart.setOption({ xAxis : [ { data : addTime }, { type : "category", data : remarks } ], series : [ { type : 'bar', data : temperature, //画直线 markLine : { data : [ { name : '起始', xAxis : 0, yAxis : 55 }, { name : '结束', value : 40, xAxis : 0, yAxis : 40 } ], } } ] }) } }); myChart.setOption(option); //打印数据 console.warn(remarks, addTime, temperature); </script> <script language="JavaScript"> function myrefresh() { window.location.reload(); } setTimeout('myrefresh()', 60000); //指定1分钟刷新一次 </script> </body> </html> ```

iframe上传文件时 ,如何在文件上传完毕时执行下步代码

iframe上传文件默认异步,但是我需要同步上传,所以有没有办法在iframe上传完毕时执行下步代码 以下是代码: $(function(){ var curTime; $("#launchBtn").click(function(){ $("#loadingbg").show(); curTime = new Date().getTime(); tabss(); for(var j=0;j<tab.length;j++){ if(tab[j].find(".limit").find(".limitInput").attr("src")=="../../../images/checked2.png"){ // 这里清空隐藏了的数据 var inputId1=tab[j].find(".limit").find(".notManualUpload").find("p").find(".formId").text(); var isSuccess = excel(tab[j].find(".limit").find(".roleName").text(),inputId1); console.log(isSuccess) if(!isSuccess){ if($(".posterInput").attr("src")=="../../../images/checked2.png"){ if($("#previewImgInput").val()==""){ $.messager.alert('提示消息','<span class="tishiTXT">请选择海报!</span>','info'); }else{ images(); }; }else{ saveActivity(""); }; return; }; }; }; if($(".posterInput").attr("src")=="../../../images/checked2.png"){ if($("#previewImgInput").val()==""){ $.messager.alert('提示消息','<span class="tishiTXT">请选择海报!</span>','info'); }else{ images(); }; }else{ saveActivity(""); }; }); function excel(roleName,inputId) { var isSuccess = false; var userId=$.cookie("userId"); var para={"userId":userId,"roleName":roleName,"version":curTime}; para=JSON.stringify(para); var aes=AESEncrypt(para); var $inputId=$("#RoleInformationTab1 input[name=file"+inputId+"]"); $inputId.upload({ // async:false, url:http+'/web/upload/excel/activityExcelUploadService', params:{para:aes}, dataType: 'json', onComplate: function (data) { if(data.code==200){ var dat=AESDecrypt(data.data); dat=JSON.parse(dat); if(dat.msgBox.errMsg==""){ isSuccess = true; console.log(isSuccess) }else{ $.messager.alert('提示消息','<span class="tishiTXT">'+dat.msgBox.errMsg+'</span>','info'); }; }else{ $("#loadingbg").hide(); $.messager.alert('提示消息','<span class="tishiTXT">'+data.message+'</span>','info'); }; } }); $inputId.upload("ajaxSubmit"); console.log(isSuccess) return isSuccess; }; function saveActivity(obj){ var posterUrl; if($(".posterInput").attr("src")=="../../../images/checked2.png"){ posterUrl=obj; }else if($(".posterInput").attr("src")=="../../../images/checked1.png"){ posterUrl=""; }; var schoolId=$.cookie("schoolId"); var userId=$.cookie("userId"); var para={"activityBaseInfo":{"actBeginTime":$(".beginTime").val(),"actEndTime":$(".endTime").val(),"actHostId":$("#SponsorSelect").val(),"actManager":$(".personInCharge").val(),"actManagerTel":$(".personInChargeTel").val(),"activityDesc":$("#actDetails").val(),"activityLevel":$("#activeLevelSelect").val(),"activityName":$(".actName").val(),"activityType":$("#activityType").val(),"addressDetail":$(".activeSiteInput").val(),"addressId":$("#activeSiteSelect").val(),"coOrganizer":$(".assist").val(),"crtUserId":userId,"posterUrl":posterUrl,"schoolId":schoolId,"sponsor":$(".sponsorInput").val(),"termId":20152},"activityRoleList":activityRoleList,"version": curTime}; para=JSON.stringify(para); var aes=AESEncrypt(para); $.ajax({ async:false, url:http+"/web/service/activityService/saveActivity", type:"POST", dataType: 'json', data:{para:aes}, success:function(data){ $("#loadingbg").hide(); if(data.code==200){ $.messager.alert('提示消息','<span class="tishiTXT">活动发起成功,请到我的活动查看!</span>','info'); }else{ $("#loadingbg").hide(); $.messager.alert('提示消息','<span class="tishiTXT">'+data.message+'</span>','info'); }; }, error:function(data){ $("#loadingbg").hide(); $.messager.alert('提示消息','<span class="tishiTXT">ERROR:网络错误!</span>','info'); } }); }; function images() { var userId=$.cookie("userId"); var para={"userId":userId}; para=JSON.stringify(para); var aes=AESEncrypt(para); $("input[name=imagesFile]").upload({ async:false, url:http+'/web/upload/image/activityPosterImageUploadService', params:{para:aes}, dataType: 'json', onComplate: function (data) { if(data.code==200){ var dat=AESDecrypt(data.data); dat=JSON.parse(dat); saveActivity(dat.path); }else{ $("#loadingbg").hide(); $.messager.alert('提示消息','<span class="tishiTXT">'+data.message+'</span>','info'); }; } }); $("input[name=imagesFile]").upload("ajaxSubmit") }; 一下是上传组件代码: /******************************************************************************* * 异步上传文件,兼容IE8,火狐和谷歌可用,如果可以使用h5则使用h5 * 实现单个多次上传不刷新 * @author 柳伟伟 <702295399@qq.com> * @version 1.5 (2016-05-09) 加入h5上传文件 *******************************************************************************/ (function ($) { var frameCount = 0; var formName = ""; var iframeObj = null; var state = {}; //var fileHtml = ""; var colfile = null; //清空值 function clean(target) { var file = $(target); var col = file.clone(true).val(""); file.after(col); file.remove(); //关键说明 //先得到当前的对象和参数,接着进行克隆(同时克隆事件) //将克隆好的副本放在原先的之后,按照顺序逐个删除,最后初始化克隆的副本 }; function h5Submit(target) { var options = state.options; var fileObj = target[0].files[0]; var fd = new FormData();//h5对象 //附加参数 for (key in options.params) { fd.append(key, options.params[key]) } var fileName = target.attr('name'); if (fileName == '' || fileName == undefined) { fileName = 'file'; } fd.append(fileName, fileObj); //异步上传 var xhr = new XMLHttpRequest(); xhr.upload.addEventListener("progress", function (evt) { if (evt.lengthComputable) { var percentComplete = Math.round(evt.loaded * 100 / evt.total); console.log(percentComplete + "%"); if (options.onProgress) { options.onProgress(evt); } } }, false); xhr.addEventListener("load", function (evt) { if ('json' == options.dataType) { var d = window.eval('(' + evt.target.responseText + ')'); options.onComplate(d); } else { options.onComplate(evt.target.responseText); } }, false); xhr.addEventListener("error", function () { console.log("error"); }, false); xhr.open("POST", options.url,false); xhr.send(fd); } function ajaxSubmit(target) { var options = state.options; if (options.url == '' || options.url == null) { alert("无上传地址"); return; } if ($(target).val() == '' || $(target).val() == null) { alert("请选择文件"); $("#loadingbg").hide(); return; } var canSend = options.onSend($(target), $(target).val()); if (!canSend) { return; } /*判断是否可以用h5*/ if (window.FormData) { //h5 console.log('h5Submit'); h5Submit(target); } else { /**/ if (iframeObj == null) { var frameName = 'upload_frame_' + (frameCount++); var iframe = $('<iframe style="position:absolute;top:-9999px" ><script type="text/javascript"></script></iframe>').attr('name', frameName); formName = 'form_' + frameName; var form = $('<form method="post" style="display:none;" enctype="multipart/form-data" />').attr('name', formName); form.attr("target", frameName).attr('action', options.url); // var fileHtml = $(target).prop("outerHTML"); colfile = $(target).clone(true); $(target).replaceWith(colfile); var formHtml = ""; // form中增加数据域 for (key in options.params) { formHtml += '<input type="hidden" name="' + key + '" value="' + options.params[key] + '">'; } form.append(formHtml); form.append(target); iframe.appendTo("body"); form.appendTo("body"); iframeObj = iframe; } //禁用 $(colfile).attr("disabled", "disabled"); var form = $("form[name=" + formName + "]"); //加载事件 iframeObj.bind("load", function (e) { var contents = $(this).contents().get(0); var data = $(contents).find('body').text(); if ('json' == options.dataType) { try { data = window.eval('(' + data + ')'); console.log(data) } catch (Eobject) { console.log('返回的json数据错误'); console.log(Eobject); data = null; } } options.onComplate(data); iframeObj.remove(); form.remove(); iframeObj = null; //启用 $(colfile).removeAttr("disabled"); }); try { form.submit(); } catch (Eobject) { console.log(Eobject); } } }; //构造 $.fn.upload = function (options) { if (typeof options == "string") { return $.fn.upload.methods[options](this); } options = options || {}; state = $.data(this, "upload"); if (state) $.extend(state.options, options); else { state = $.data(this, "upload", { options: $.extend({}, $.fn.upload.defaults, options) }); } }; //方法 $.fn.upload.methods = { clean: function (jq) { return jq.each(function () { clean(jq); }); }, ajaxSubmit: function (jq) { return jq.each(function () { ajaxSubmit(jq); }); }, getFileVal: function (jq) { return jq.val() } }; //默认项 $.fn.upload.defaults = $.extend({}, { async:false, url: '', dataType: 'json', params: {}, onSend: function (obj, str) { return true; }, onComplate: function (e) {}, onProgress: function (e) {} }); })(jQuery);

学Python后到底能干什么?网友:我太难了

感觉全世界营销文都在推Python,但是找不到工作的话,又有哪个机构会站出来给我推荐工作? 笔者冷静分析多方数据,想跟大家说:关于超越老牌霸主Java,过去几年间Python一直都被寄予厚望。但是事实是虽然上升趋势,但是国内环境下,一时间是无法马上就超越Java的,也可以换句话说:超越Java只是时间问题罢。 太嚣张了会Python的人!找工作拿高薪这么简单? https://edu....

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

Java校招入职华为,半年后我跑路了

何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

@程序员:GitHub这个项目快薅羊毛

今天下午在朋友圈看到很多人都在发github的羊毛,一时没明白是怎么回事。 后来上百度搜索了一下,原来真有这回事,毕竟资源主义的羊毛不少啊,1000刀刷爆了朋友圈!不知道你们的朋友圈有没有看到类似的消息。 这到底是啥情况? 微软开发者平台GitHub 的一个区块链项目 Handshake ,搞了一个招募新会员的活动,面向GitHub 上前 25万名开发者派送 4,246.99 HNS币,大约价...

用python打开电脑摄像头,并把图像传回qq邮箱【Pyinstaller打包】

前言: 如何悄悄的打开朋友的摄像头,看看她最近过的怎么样,嘿嘿!这次让我带你们来实现这个功能。 注: 这个程序仅限在朋友之间开玩笑,别去搞什么违法的事情哦。 代码 发送邮件 使用python内置的email模块即可完成。导入相应的代码封装为一个send函数,顺便导入需要导入的包 注: 下面的代码有三处要修改的地方,两处写的qq邮箱地址,还有一处写的qq邮箱授权码,不知道qq邮箱授权码的可以去百度一...

做了5年运维,靠着这份监控知识体系,我从3K变成了40K

从来没讲过运维,因为我觉得运维这种东西不需要太多的知识面,然后我一个做了运维朋友告诉我大错特错,他就是从3K的运维一步步到40K的,甚至笑着说:我现在感觉自己什么都能做。 既然讲,就讲最重要的吧。 监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的数据用于追查定位问题。目前业界有很多不错的开源产品可供选择。选择一款开源的监控系统,是一个省时省力、效率最高的方...

计算机网络——浅析网络层

一、前言 注意,关于ipv4和ipv6,ipv4是ip协议第4版本,也表示这个版本的ip一共4个字节,同样地,ipv6是ip协议第6版本,也表示这个版本的ip一共6个字节。 关于网络层使用路由器实现互联:在计算机网络的分层结构中,不同层有不同的中继设备: 计算机网络层 中继设备/中继系统 物理层 中继器、集线器Hub 数据链路层 网桥或交换机(交换机是多端口网桥,两者本质上是一个东西) 网络层 路...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

win10暴力查看wifi密码

刚才邻居打了个电话说:喂小灰,你家wifi的密码是多少,我怎么连不上了。 我。。。 我也忘了哎,就找到了一个好办法,分享给大家: 第一种情况:已经连接上的wifi,怎么知道密码? 打开:控制面板\网络和 Internet\网络连接 然后右击wifi连接的无线网卡,选择状态 然后像下图一样: 第二种情况:前提是我不知道啊,但是我以前知道密码。 此时可以利用dos命令了 1、利用netsh wlan...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

记一次腾讯面试,我挂在了最熟悉不过的队列上……

腾讯后台面试,面试官问:如何自己实现队列?

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

给女朋友解释为什么TCP可靠而非安全,UDP非可靠而安全(聊天记录)

给女朋友解释为什么TCP可靠而非安全,UDP非可靠而安全

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

立即提问
相关内容推荐