ajax 调用外部函数,外部函数中的ajax不执行

tab();
function tab() {
//alert("name:"+name);
$("#table")
.bootstrapTable({

                            url: "scol/player.action",
                            method: 'get', //请求方式(*)
                            toolbar: '#formTools', //工具按钮用哪个容器
                            striped: true, //是否显示行间隔色
                            cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
                            pagination: true, //是否显示分页(*)
                            queryParams: function(params) {
                                return {
                                    offset: params.offset,
                                    limit: params.limit,
                                    sname: $('#sname').val(),
                                    sposi: $('#sposi').val(),
                                    roles: $('#roles').val()
                                };
                            },
                            pageSize: 4, //每页的记录行数(*)
                            pageNumber: 1, //初始化加载第一页,默认第一页
                            pageList: [2, 4, 6],
                            singleSelect: false,
                            showColumns: true,
                            sortable: true, //是否启用排序 
                            sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
                            strictSearch: true,
                            minimumCountColumns: 2, //最少允许的列数
                            clickToSelect: true, //是否启用点击选中行
                            showRefresh: false, //是否显示刷新按钮
                            uniqueId: "id", //每一行的唯一标识,一般为主键列
                            cardView: false, //是否显示详细视图
                            search: true,
                            strictSearch: true,
                            showColumns: true,
                            showRefresh: true,
                            showExport: true,
                            onLoadError: function(data) {
                                $('#stuinfo').bootstrapTable('removeAll');
                            },
                            columns: [{
                                    field: 'id',
                                    title: '球员号码'
                                },
                                {
                                    field: 'name',
                                    title: '球员姓名'
                                },
                                {
                                    field: 'posi',
                                    title: '位置'
                                },
                                {
                                    field: 'cm',
                                    title: '身高/CM'
                                },
                                {
                                    field: 'kg',
                                    title: '体重/KG'
                                },
                                {
                                    field: 'home',
                                    title: '籍贯'
                                },
                                {
                                    field: 'birth',
                                    title: '出生日期'
                                },
                                {
                                    field: 'ps',
                                    title: '备注'
                                },
                                /* {
                                    field : 'yid',
                                    title : '入队时间'
                                }, */
                                {
                                    field: 'year.year',
                                    title: '入队时间'
                                },
                                {

                                    title: '状态',
                                    field: '',
                                    align: 'center',
                                    formatter: function(value, row, index) {
                                        var s="123";
                                         $.ajax({
                                            url: 'scol/eec.action',
                                            type: 'post',
                                            data: { pid: row.id },
                                            dataType: 'json',
                                            async : false,
                                            beforeSend: function(jqXHR, settings) {

                                            },

                                            success: function(data3, textStatus) {
                                                if(textStatus == "success") {

                                                    var s1=data3.point[data3.point.length-1];
                                                    var s2=data3.point[data3.point.length-2];
                                                    if(s1-s2>8){
                                                        s="red;'>上升"
                                                    }else if(s2-s1>8){
                                                        s="gray;'>下滑"
                                                    }else if(s1==null||s2==null)
                                                        {
                                                        s="goldenrod;'>未知"
                                                        }
                                                    else{
                                                        s="lawngreen;'>正常"
                                                    }

                                                }
                                            },
                                            error: function(jqXHR, textStatus, errorThrown) {
                                                //充当catch(e)的角色
                                                alert("失败!");
                                            }

                                        });

                                        var w = "<span style='color:"+s+"</span> "; 

                                        return w ;      
                                    }

                                },
                                {

                                    title: '操作',
                                    field: '',
                                    align: 'center',
                                    formatter: function(value, row, index) {
                                        var w = '<a href="#" mce_href="#" onclick="detail(\'' + row.id + '\')">详细信息</a> ';
                                        var e = '<a href="#" mce_href="#" onclick="edit1(\'' + row.id+'\',\''+row.name+ '\',\''
                                        +row.posi+ '\',\''+row.cm+ '\',\''+row.kg+ '\',\''+row.home+ '\',\''+row.birth
                                        + '\',\''+row.ps+ '\',\''+row.yid+ '\',\''+row.tid+ '\')">编辑</a> ';
                                        var d = '<a href="#" mce_href="#" onclick="del(\'' + row.id + '\',\''+row.name+'\')">删除</a> ';
                                        return w + e + d;
                                    }

                                }
                            ],
                            onDblClickRow: function(row, $element) {

                                eechart(row);

                            }
                        });
                };

/* 删除 /
function del(pid,pname) {
if(confirm("确定删除" + pname + "吗?")){
$.ajax({
url: 'scol/dps.action',
type: 'post',
data: { pid: pid },
dataType: 'text',
/
async : false, */
beforeSend: function(jqXHR, settings) {

                },

                success: function(data3, textStatus) {
                    if(textStatus == "success") {
                        alert("用户删除" + data3);
                        $('#table').bootstrapTable('destroy');
                        tab();


                    }
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    //充当catch(e)的角色
                    alert("删除失败!");
                }

            });}

        };

2个回答

不是不执行,而是执行的时机问题,get请求是异步的,你要等数据返回了,再下一步。

看上面的代码把异步设置为false注释掉啦,那就是默认的同步,同步的话只能是ajax后台程序执行完了,返回值后再执行ajax下面的代码,异步的话,不用等ajax执行完返回值,就可以执行ajax下面的代码!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring+ajax回调函数如何保证同步执行
js中调用了ajax方法,我需要ajax中的回调函数执行完成之后在执行js的下一行。请问如何能保证该同步功能。
JS函数里面的$.ajax无法执行是怎么回事
在一个函数里使用$.ajax,结果不执行,应该是报错了,因为alert的测试是进去到了这个js函数,而进去了就完了。。。函数结束后的alert(结束了)并没有执行, 这是怎么回事啊?临时要用前端,查资料写的,也不知道哪儿出了问题,照着别人的复制的,数据是自己写的 **这是调用的js函数** ``` function changeDate(zoneId) { alert("进来了"); var para="zoneId="+zoneId; $.ajax({ url:"demo/demo?zoneId="+zoneId, type:"get", dataType:"json", success:function(data) { alert("成功"); } }); } ``` **这是在函数里调用该函数,先alert(开始了),再调用函数,调用完再alert(结束了)** ``` alert("开始了"); changeDate("1"); alert("结束了?"); ```
jquery 函数调用
对于jquery和javascript之间的函数调用有点疑问: 我写这样一个jquery代码: [code="js"] $(document).ready(function() { function clickToPage() { var options = { ... success: clickToPageResponse, ... }; $.ajax(options); } function clickToPageResponse(data) {...} }); // jquery的$(document).ready(function(){}函数外部 function deleteFunction(id) { var options = { ... success: deleteFunctionResponse, ... }; $.ajax(options); } function deleteFunctionResponse(result) { var options = { ... success: clickToPageResponse, ... }; $.ajax(options); } [/code] 问题出来了,deleteFunctionResponse中怎么都呼出不到clickToPageResponse,我估计是因为deleteFunctionResponse在$(document).ready(function(){}外部,而clickToPageResponse在内部的原因,请问有没有办法让$(document).ready(function(){}外部的javascript代码调到内部的jquery函数? 我不是很明白在$(document).ready(function(){}内外的具体区别,感觉上内部应该是jquery的代码,外部的话就是javascript,而且为什么在jsp标签中用onclick属性调用的函数只能写在$(document).ready(function(){}外部,写在内部就是调不到,只能用.click()来加载onclick函数?
做ajax请求时callback函数调用时this变量的变化问题
代码大致如下 [code="javascript"] var a = (function(){ var a = function (...,param) { return new a.fn.init (...,param) } a.fn = a.prototype = { init: function (...) { ... this.param = param } callback: function (response) { this.param //这里似乎this发生改变,this.param值为undefined ... } getData: function() { //通过ajax获得数据,然后回调 callback doGetAjax(url,data,this.callback) } } a.fn.init.prototype = a.fn; })() [/code] 像这种地方想要在callback获得param应该怎么做? edit1 -------------------------------------- 想了一下,这里ajax返回调用的时候this已经没有绑定了,在a内找不到再次与this绑定的方法, 那就不使用this,使用函数类的局部全局变量达到私有变量的效果, 代码改变如下 :[code="javascript"] var a = (function(){ var pParam; //添加私有变量 ... init: function (...) { ... pParam=this.param = param } ... callback: function (response) { pParam //这里似乎this发生改变,this.param值为undefined ... } [/code] 想了一下,是否所有对象的属性都应该赋值给 私有变量,而 this.XXX则是要暴露给外界才多加一个赋值? edit 2 ------------------------- 这两天重新看了下,发现这种私有变量是所有实例共享的,一个页面有多个同类组件的话就不行了. 如果是存储一个共享私有变量,每次ajax请求以后都手动立刻将私有变量赋值给相应实例变量,但这样的缺点是多次自动进行ajax操作的话是实现不了的,比如分页ajax请求。 这种情况究竟咋解决.
php ajax 调用控制器函数,为什么前端不显示
``` <div id="get"></div> ``` ``` function get() { $.ajax({ url: "index.php?get/getmore", type : 'POST', data :{ page:1 }, success:function(data) { console.log(data); $('ul.la-list').append(data); } }); } ```
js中ajax没有调用controller方法
js: $.ajax({ url:"editNews.api", //处理页面的路径 就是你controller里的方法 后台方法记得加 @ResponseBody data:{"items_id":items_id,"imageLink":imageLink}, //要提交的数据是一个JSON 6这个可以根据你需要数据来替换 type:"POST", //提交方式 dataType:"TEXT", //返回数据的类型 //TEXT字符串 JSON返回JSON XML返回XML success:function(message){ //回调函数 ,成功时返回的数据存在形参data里执行成功,这里就可以判断是否编辑成功! } }); controller: @RequestMapping(value = "editNews", method = RequestMethod.POST) public ModelAndView editNews(HttpServletRequest request, HttpServletResponse response) throws Exception { // 获取表单提交数据 String items_id = request.getParameter("items_id"); String imageLink = request.getParameter("imageLink"); js中ajax没有调用controller方法,请问为什么?谢谢各位老师指导。
js中Ajax返回的值怎么当函数返回值供别的函数调用?
![图片说明](https://img-ask.csdn.net/upload/201501/24/1422069189_450453.jpg) ![图片说明](https://img-ask.csdn.net/upload/201501/24/1422069201_88183.jpg) 如上图代码 我调用时返回的是undefined
为什么Ajax调用后台Action,结果返回回调函数时,在js里没有进入回调函数?
<p>我在js里面通过ajax调用一个action,然后返回结果给回调函数,但是程序始终不进入回调函数callback,请问问题出在哪里了?</p> <pre name="code" class="js">&lt;script type="text/javascript"&gt; function chooseFile(obj) { $('uploadpictureForm').action = "${pageContext.request.contextPath}/page/uploadPicture.action"; $('uploadpictureForm').submit(); } function checkRadio(id) { if(id=="local") { $("uploadfile").style.display = "block"; $("uploadPicture").disabled = false; } if(id=="server") { $("uploadfile").style.display = "none"; $("showImg").style.display = "block"; var url = "${pageContext.request.contextPath}/page/showPicture.action"; ajax("post",url,"",callback); alert(1); } } function callback(obj) { alert(2); } &lt;/script&gt;</pre> <p>ajax.js:</p> <pre name="code" class="js">//ajax的封装 var hand;//回调函数 var xmlHttpRequest; function createXmlRequest(){ if(window.XMLHttpRequest){ xmlHttpRequest = new XMLHttpRequest(); }else{ xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } } //参数1:get/post //参数2:访问地址 //参数3:发送给服务器的数据 //参数4:回调函数 function ajax(method,url,data,handle){ createXmlRequest();//先创建核心对象 hand = handle; if(method=="get"){ url += ("?@new Date()@"+data); xmlHttpRequest.onreadystatechange = result; xmlHttpRequest.open(method,url,true); xmlHttpRequest.send(null); }else{ xmlHttpRequest.onreadystatechange = result; xmlHttpRequest.open(method,url,true); xmlHttpRequest.setRequestHeader("content-length",data.length); xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xmlHttpRequest.send(data); } } //回调处理函数 function result(){ if(xmlHttpRequest.readyState==4&amp;&amp;xmlHttpRequest.status==200){ var data = xmlHttpRequest.responseText; hand(data); } }</pre> <p>  </p> <p> </p> <p> </p> <p>struts.xml:</p> <pre name="code" class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"&gt; &lt;struts&gt; &lt;package name="test" extends="struts-default" namespace="/page"&gt; &lt;action name="uploadPicture" class="com.isoftstone.action.UploadPictureAction"&gt; &lt;result name="success" type="redirect"&gt;/index.jsp&lt;/result&gt; &lt;/action&gt; &lt;action name="showPicture" class="com.isoftstone.action.ShowPictureAction"&gt; &lt;result name="ajax"/&gt; &lt;/action&gt; &lt;/package&gt; &lt;/struts&gt;</pre> <p> </p>
js跨域调用函数 接收返回值
现在 http://www.demo1.com/demo.jsp 中的js 想调用 http://www.demo2.com/demo2.jsp 页面中的js 函数的返回值 这里的JS的返回值是用AJAX调用本服务器demo2上的页面接收的值 我试过了不少方案 都没办法 头疼了。。 并且 document.domain 也不能用 因为demo1 demo2 都不在一个域之内 我demo1里面的demo.jsp 需要 demo2里面 demo2.jsp 中的js在 demo2的服务器上执行ajax 希望大哥们有经验的给个思路 提醒一下 也行 谢了
Ajax调用作用域问题,函数未定义
提示tellme未定义。代码在图里面,请大神指点。。。。。。
关于js函数调用不起作用的问题
今天在学习ajax的时候,按照课本上的步骤,但是最后没有任何效果 ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>search Suggest</title> <script type="text/javascript" src="/js/ajax.js"></script> <script type="text/javascript"> var trSrc; //设置下拉提示框的位置 function setDivPosition() { alert("error"); var input = document.getElementById("inputWord"); var listdiv = document.getElementById("wordsListDiv"); listdiv.style.left = (input.offsetLeft)+"px"; listdiv.style.border = "blue 1px solid"; listdiv.style.top = (input.offsetTop+input.offsetHeight)+"px"; listdiv.style.width = (input.offsetWidth)+"px"; } function search() { alert("search?"); var inputWord = document.getElementById("inputWord").value; var url = "SearchSuggest"; var params = "inputWord="+inputWord; sendRequest(url,params,"POST",display); } function display() { alert("display?"); if(httpRequest.readyState == 4){ if(httpRequest.status == 200){ var xmlDoc = httpRequest.responseXML; clearDivData(); changeDivData(xmlDoc); }else{ alert("您请求的界面有异常!"); } } } // 清除下拉框中的数据 function clearDivData(){ alert("clearDiv"); var tbody = document.getElementById("wordsListTbody"); vat trs = tbody.getElementsByTagName("tr"); for(var i=trs.length-1;i>0;i--){ tbody.removeChild(trs[i]); } } // 设置用户选中条目的背景色 function setBgColor() { if(trSrc){ trSrc.style.backgroundColor = "white"; } trSrc = event.srcElement; trSrc.style.backgroundColor = "gray"; } // 将用户选中的条目显示在文本框中 function setText(){ alert("setText"); document.getElementById("inputWorld").value = trSrc.firstChild.data; document.getElementById("wordsListDiv").style.visibility = "hidden"; } // 实际将数据加入下拉提示框 function changeDivData(xmlDoc) { alert("changeDiv"); var words = xmlDoc.getElementsByTagName("word"); var tbody = document.getElementById("wordsListTbody"); for(i=0;i<words.length;i++){ var newTr = document.createElement("tr"); var newCell = document.createElement("td"); var wordText = words[i].firstChild.data; var textNode = document.createTextNode(wordText); newCell.onmouseover = setBgColor; newCell.onclick = setText; newCell.appendChild(textNode); newTr.append(newCell); tbody.appendChild(newTr); } if(words.length>0){ document.getElementById("wordsListDiv").style.visibility = 'visible'; }else{ document.getElementById("wordsListDiv").style.visibility = 'hidden'; } } </script> </head> <body onload="setDivPosition()"> <p>搜索字符串:<input type="text" id="inputWord" onkeyup="search()"></p> <div id="wordsListDiv" style="position:absolute;visibility:hidden"> <table id="worksListTable"> <tbody id="wordsListTbody"><tr><td>test</td></tr></tbody> </table> </div> </body> </html> ``` 其中就是body标签调用的onload,然后文本框调用了onKeyUp,在两个函数里面都加了一条alert语句,然后运行的时候还是什么反应都没有,求大佬给看一下是什么原因
CodeIgniter框架与ajax的调用,详细进来看看,我相信很多人都遇到这个!
首先,我通过ajax调用CI框架里头的函数增删改查数据都是成功的,不成功的就是单数据查询成功后我想把获取的数据集返回到页面,而因为是ajax所以数据不能通过$this->load->view(页面,数据)来传递,只能return 数据;如此一来页面的ajax要怎么获取到这个数据集呢????????急?????????
ajax异步回调函数无法调用
<p>ajax.js代码:</p> <p><br><img src="http://dl.iteye.com/upload/attachment/553491/c9855833-60b1-3bca-9668-2b1007098d5a.jpg" alt=""></p> <p> </p> <p>url正确,已经进入到对应的aciton并执行有结果,但是 xmlHttp.onreadyStatechange=function()  这句一直未执行,我在函数里写了alert并未跳出,请大神看看娜丽有问题~~</p> <p> </p> <p> </p> <p> </p> <p>action的代码:</p> <p> </p> <p> </p> <p>public ActionForward execute(ActionMapping mapping, ActionForm form,</p> <p><span style="white-space: pre;"> </span>HttpServletRequest request, HttpServletResponse response) throws JSONException {</p> <p><span style="white-space: pre;"> </span>ManagerForm managerForm = (ManagerForm) form;// TODO Auto-generated method stub</p> <p><span style="white-space: pre;"> </span> <span style="white-space: pre;"> </span>List signList=null;</p> <p> </p> <p><span style="white-space: pre;"> </span>SignInService signService=(SignInService)getBean("signInService");</p> <p><span style="white-space: pre;"> </span>signList=signService.findAll(signIn);</p> <p><span style="white-space: pre;"> </span>JSONObject result = new JSONObject();</p> <p><span style="white-space: pre;"> </span>result.put("signlist", signList);</p> <p><span style="white-space: pre;"> </span>request.setAttribute("ajaxResult", result);</p> <p><span style="white-space: pre;"> </span>return null;</p> <p><span style="white-space: pre;"> </span>}</p> <p> </p> <p> </p> <p> </p> <p>jsp的代码:</p> <p><span style="white-space: pre;"> </span>&lt;body&gt;</p> <p><span style="white-space: pre;"> </span>&lt;input type="button" value="查询" onclick="getSignList()" /&gt;</p> <p><span style="white-space: pre;"> </span>&lt;/body&gt;</p> <p> </p>
为啥接受不到数据AJAX
``` <script src ="Js/jquery-3.4.1.js"> </script> <script> ////定义变量保存XmlHttpRequest对象 //var xmlHttp = null; ////用于创建AJAX请求核心对象XmlHttpRequest //function createXmlHttpRequest() { // try // { // xmlHttp = new XMLHttpRequest();//适用于IE7+,Fireiox,Chrome等主流浏览器 // } // catch (Error) // { // xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//适用于IE低版本7以下的 // } //} //$(function () { // $("#ImgButOn").click(function () { // //调用函数创建XmlHttpRequest对象 // createXmlHttpRequest(); // //获得需要提交给服务器的数据 // var UserId = $("#TxtUser").val(); // var UserPwd = $("#TxtPwd").val(); // //服务端路劲,同时把数据传送到服务器地址拦 // var serverPath = "server.ashx?UserId=" + UserId + "&UserPwd=" + UserPwd + ""; // //设置XmlHttpRequest对象参数 // xmlHttp.open("get", serverPath, true); // //服务端处理结果,使用XmlHttpRequest对象状态监测 // xmlHttp.onreadystatechange = clicentCallback; // //通过XmlHttpRequest对象发送请求 // xmlHttp.send(); // }) //}) //function clicentCallback() { // //XmlHttpRequest对象状态从开始发送请求到服务端经历了4个分别是: // //返回值 0 :请求位初始化 // //返回值 1 :和服务端连接已经建立 // //返回值 2 : 请求已被服务端接受 // //返回值 3 :请求处理中 // //返回值 4 :请求处理完 // if (xmlHttp.readyState == 4) { // if (xmlHttp.status == 200) { // //获得服务端返回给客户端的结果(纯文本,xml,josn,html) // var msg = xmlHttp.responseText; // alert(msg); // } // } //} //#Jquery封装函数使用AJAX异步请求 $(function () { $("#ImgButOn").click(function () { $.ajax({ url:"server.ashx",//请求服务端地址 type:"get",//请求方式 data:{ "UserId": $("#TxtUser").val(), "UserPwd":$("#TxtPwd").val() }//发送到服务端的数据 success:function (date, status, xmlhttp) {//服务端成功处理时回调函数 alert(date + ":" + status); }, error: function () {//服务端失败时的回调函数 alert("请求未成功!"); }, dataType:"text"//预期服务端发回数据类型 }) }) </script> public void ProcessRequest(HttpContext context) { SES_Model.User user = new SES_Model.User(); //服务端要获得客户端以AJAX请求发送过来的数据 string UserId = context.Request.QueryString["UserId"]; string UserPwd = context.Request.QueryString["UserPwd"]; //在服务器中处理数据 user = SES_BLL.Users_Service.User_Enter(UserId, UserPwd); string msg = string.Empty; if (user != null) { msg = "ok"; } else { msg = "error!"; } context.Response.ContentType = "text/plain"; context.Response.Write(null); } ```
mui.ajax调用.net的接口
//利用接口的访问定义的常量 var SERVER_HOST = "http://192.168.1.13:81/"; var MODULE_LOGIN = "dailyservice.asmx?op=getUserInfo"; //登录接口 //var MODULE_LOGIN = "mobileAPI?action=login"; var MODULE_SHOW_REQUEST_LIST = "dailyservice.asmx?op=dailylist"; //查询,显示数据 var TOKEN_USER = "loginUserId"; var TOKEN_LOGIN = "loginToken"; var TOKEN_PROJECT_LIST = "projectList"; var PWD_CODE = "easking"; /** * 通过api连接服务器的接口 * @param {Object} $ * @param {Object} longsdailys */ /*function(date){ //成功回调函数,需要处理,日后处理 waitingDialog.close(); //关闭等待提示框 mui.alert("已经成功连接到服务器", "错误", "OK", null); }*/ (function($, owner) { /** * * @param {Object} url * @param {Object} dailysInfo * @param {Object} callback * @param {Object} waitingDialog */ owner.longpost = function(url, data, callback, waitingDialog) { alert(JSON.stringify(data) + "---"); $.ajax(url, { data: 'data=' + JSON.stringify(data), //获取登录信息, 用户名,秘密 dataType: 'json', //格式 type: "post", //提交方式 contentType: "application/x-www-form-urlencoded; charset=utf-8", timeout: 80000, //请求时间 success: callback, error: function(xhr, type, errorThrown) { //返回错误提示! waitingDialog.close(); //关闭等待提示框 mui.alert("<网络连接失败,请重新尝试一下>", "错误", "OK", null); } }); /*** * ID * @param {Object} id */ owner.id = function(id) { return document.getElementById(id); } /*** * * @param {Object} name */ owner.name = function(name) { return document.getElementsByName(name); } } function $tagFirst(obj, tagName) { return $tagByIndex(obj, tagName, 0); } }(mui, window.appbase = {}));
ajax请求后台阻塞问题
写了两个AJAX函数,第一个用于导入数据,同时将进度信息写到全局变量中,第二个每隔一秒种获取全局变量的进度信息 但是为何第二个ajax一定要等到第一个结束时才会去执行? 1. 设置过jquery AJAX的async 为te,即异步执行 2. 第二个ajax(获取进度信息的), 就算我随便返回个值(非session)里面的都不会去调用后台方法, 直到第1个执行完成才会进来。 也不是session的问题。。。 那么真的很奇怪啊, 大神速来~~~
TP5后台如何调用前端js的函数?
请教:  在TP5后台,如何调用前端JS的方法? 用 echo 打印出不行吗? TP5 后台:   public  function test(){         // echo "<script type='text/javascript'>test66();</script> ";         echo "  test66()";     } view 页面前端:      function test66() {              alert('test66');             } 这样写,前端view页面 的test66()函数,接收不到TP5 后台echo送过来的信息,请问如何解决? 最后我是这样解决的: view 页面用 ajax 方法,到TP5后台后,用 json方法回传,在ajax的success再次调用JS方法: $(function(){ $('#btnTest').click(function(){ $.ajax({ url: "{:url('admin/test')}", type:"POST", dataType:"script", data:{'id':1 }, success:function (data) { test(); },error:function (data) { } }); }) function test(){ alert('123'); } })
js 一个全局变量,在一个函数中进行赋值,调用另一个函数 ,这个全局变量的值却没有值为undined
``` var typer; function zhe(){ typer = 'spline'; search(); } function search() { var jsonXData = []; var jsonyD = []; $.ajax({ url : base + '/gateBrandCount/statisticsbySpecial.html', data : $('#form').serialize(), success : function(e) { var json = eval("(" + e + ")"); for (var i = 0; i < json.length; i++) { var specialName = json[i].specialName; var count = json[i].count; jsonXData.push(specialName); // 赋值 jsonyD.push(count); } console.log(typer); if(typer==undefined){ console.log(typer+"11111") var op=highchart(jsonXData,jsonyD); op.chart.type='column'; }else{ console.log(typer+"22222") var op=highchart(jsonXData,jsonyD); op.chart.type="'"+typer+"'"; } console.log(op.chart.type+" ty"); chart = new Highcharts.Chart(op); } }) } ``` highchart为一个显示柱状图的函数 返回options 就是那个typer 调用zhe() ,赋值后在search()中就是undefined 求教啊
jquery ajax方法调用在session超时以后如何跳转到登录页面?
jquery ajax方法调用在session超时以后如何跳转到登录页面? session超时以后虽然被过滤器过滤到了,但是并不会跳转到登录页面请求具体的解决方法。 我参考了这篇文章,但是我调用ajaxStart不起作用。 http://www.blogjava.net/vickzhu/archive/2009/06/05/280223.html ext jquery 用户访问超时(ext session过期) 解决两种情况下的用户访问超时。 a)普通http请求的session超时。 b)异步http请求的session超时,使用ext后大部分的界面刷新都是异步的ajax请求。 不管是那种类型的http请求总是可以由一个过滤器来捕捉。 分类:普通http请求的header参数中没有x-requested-with:XMLHttpRequest头信息,而异步的有。 其实对于常见的ajax框架,header中还有标示自己身份的header信息。 对于普通的http请求,发现session超时后直接重定向到一个超时页面,显示访问超时。 对于异步http请求,发现session超时后则向请求的response中写入特定的超时头信息,客户端ajax对象检测 头信息,发现有超时状态标志后调用显示超时信息的javascript方法,提示用户访问超时。 服务器端session超时后在过滤器中为response添加新的头信息,标记该请求超时: if(r.getHeader("x-requested-with")!=null && r.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){ response.setHeader("sessionstatus","timeout"); } 使用Ext.Ajaxt对象完成异步请求的交互,Ext.Ajax是单实例对象(非常重要,全局单一Ext.Ajax实例!)。 注册Ext.Ajax的requestcomplete事件,每个ajax请求成功后首先响应该事件。在该事件的回调函数里面判断 访问请求是否超时。使用Ext.Ajax对象的好处是,只需要引入一个包含了几行超时处理代码的js文件,就可以 为当前应用增加超时处理功能,原有代码不需要做任何修改。 使用Ext.Ajaxt对象完成异步请求交互,假如checkUserSessionStatus是你的回调方法,每个页面引用: Ext.Ajax.on('requestcomplete',checkUserSessionStatus, this); function checkUserSessionStatus(conn,response,options){ //Ext重新封装了response对象 if(typeof response.getResponseHeader.sessionstatus != 'undefined'){ //发现请求超时,退出处理代码... } } 可以利用的几个特性:a)所有的ajax请求均带有x-requested-with:XMLHttpRequest头信息b)Ext.Ajax是单实例对象(非常重要,全局单一Ext.Ajax实例!)c)注册Ext.Ajax的requestcomplete事件,每个ajax请求成功后首先响应该事件(概念类似spring的aop拦截)。 jquery提供了几个全局事件可以用来处理session过期请求,如当ajax请求开始时会触发ajaxStart()方法的回调函数;当ajax请求结束时,会触发ajaxStop()方法的回调函数。这些方法都是全局的方法,因此无论创建它们的代码位于何处,只要有ajax请求发生时,都会触发它们。类似的事件还有:ajaxComplete(),ajaxError(),ajaxSend(),ajaxSuccess()等。 如果使某个ajax请求不受全局方法的影响,那么可以在使用$.ajax()方法时,将参数中的global设置为false,jquery代码如下:$.ajax({ url:"test.html", global:false//不触发全局ajax事件}) 对于其他的ajax框架,解决用户访问请求超时这个问题的思路是类似的。
动态规划入门到熟悉,看不懂来打我啊
持续更新。。。。。。 2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n&gt;=2,n∈N*)根据定义,前十项为1, 1, 2, 3...
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
防劝退!数据结构和算法难理解?可视化动画带你轻松透彻理解!
大家好,我是 Rocky0429,一个连数据结构和算法都不会的蒟蒻… 学过数据结构和算法的都知道这玩意儿不好学,没学过的经常听到这样的说法还没学就觉得难,其实难吗?真难! 难在哪呢?当年我还是个小蒟蒻,初学数据结构和算法的时候,在忍着枯燥看完定义原理,之后想实现的时候,觉得它们的过程真的是七拐八绕,及其难受。 在简单的链表、栈和队列这些我还能靠着在草稿上写写画画理解过程,但是到了数论、图...
【搞定 Java 并发面试】面试最常问的 Java 并发基础常见面试题总结!
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star!【Java学习 面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。欢迎 Star!)。 另外推荐一篇原创:终极推荐!可能是最适合你的Java学习路线 方法 网站 书籍推荐! Java 并发基础常见面试题总结 1. 什么是线程和进程? 1.1. 何为进程? 进程是程...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
shell脚本:备份数据库、代码上线
备份MySQL数据库 场景: 一台MySQL服务器,跑着5个数据库,在没有做主从的情况下,需要对这5个库进行备份 需求: 1)每天备份一次,需要备份所有的库 2)把备份数据存放到/data/backup/下 3)备份文件名称格式示例:dbname-2019-11-23.sql 4)需要对1天以前的所有sql文件压缩,格式为gzip 5)本地数据保留1周 6)需要把备份的数据同步到远程备份中心,假如...
iOS Bug 太多,苹果终于坐不住了!
开源的 Android 和闭源的 iOS,作为用户的你,更偏向哪一个呢? 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 毋庸置疑,当前移动设备操作系统市场中,Android 和 iOS 作为两大阵营,在相互竞争的同时不断演进。不过一直以来,开源的 Android 吸引了无数的手机厂商涌入其中,为其生态带来了百花齐放的盛景,但和神秘且闭源的 iOS 系统相比,不少网友...
神经⽹络可以计算任何函数的可视化证明
《Neural Networks and Deep Learning》读书笔记第四篇本章其实和前面章节的关联性不大,所以大可将本章作为小短文来阅读,当然基本的深度学习基础还是要有的。主要介绍了神经⽹络拥有的⼀种普遍性,比如说不管目标函数是怎样的,神经网络总是能够对任何可能的输入,其值(或者说近似值)是网络的输出,哪怕是多输入和多输出也是如此,我们大可直接得出一个结论:不论我们想要计算什么样的函数,...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
为什么你学不过动态规划?告别动态规划,谈谈我的经验
动态规划难吗?说实话,我觉得很难,特别是对于初学者来说,我当时入门动态规划的时候,是看 0-1 背包问题,当时真的是一脸懵逼。后来,我遇到动态规划的题,看的懂答案,但就是自己不会做,不知道怎么下手。就像做递归的题,看的懂答案,但下不了手,关于递归的,我之前也写过一篇套路的文章,如果对递归不大懂的,强烈建议看一看:为什么你学不会递归,告别递归,谈谈我的经验 对于动态规划,春招秋招时好多题都会用到动态...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
如何安装 IntelliJ IDEA 最新版本——详细教程
IntelliJ IDEA 简称 IDEA,被业界公认为最好的 Java 集成开发工具,尤其在智能代码助手、代码自动提示、代码重构、代码版本管理(Git、SVN、Maven)、单元测试、代码分析等方面有着亮眼的发挥。IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主。IDEA 分为社区版和付费版两个版本。 我呢,一直是 Eclipse 的忠实粉丝,差不多十年的老用户了。很早就接触到了 IDEA...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
为什么要推荐大家学习字节码?
配套视频: 为什么推荐大家学习Java字节码 https://www.bilibili.com/video/av77600176/ 一、背景 本文主要探讨:为什么要学习 JVM 字节码? 可能很多人会觉得没必要,因为平时开发用不到,而且不学这个也没耽误学习。 但是这里分享一点感悟,即人总是根据自己已经掌握的知识和技能来解决问题的。 这里有个悖论,有时候你觉得有些技术没用恰恰是...
互联网公司的裁员,能玩出多少种花样?
裁员,也是一门学问,可谓博大精深!以下,是互联网公司的裁员的多种方法:-正文开始-135岁+不予续签的理由:千禧一代网感更强。95后不予通过试用期的理由:已婚已育员工更有责任心。2通知接下来要过苦日子,让一部分不肯同甘共苦的员工自己走人,以“兄弟”和“非兄弟”来区别员工。3强制996。员工如果平衡不了工作和家庭,可在离婚或离职里二选一。4不布置任何工作,但下班前必须提交千字工作日报。5不给活干+...
【超详细分析】关于三次握手与四次挥手面试官想考我们什么?
在面试中,三次握手和四次挥手可以说是问的最频繁的一个知识点了,我相信大家也都看过很多关于三次握手与四次挥手的文章,今天的这篇文章,重点是围绕着面试,我们应该掌握哪些比较重要的点,哪些是比较被面试官给问到的,我觉得如果你能把我下面列举的一些点都记住、理解,我想就差不多了。 三次握手 当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次三次握手的时候,我想很多人会这样回答: 首先很多人会先讲下握...
新程序员七宗罪
当我发表这篇文章《为什么每个工程师都应该开始考虑开发中的分析和编程技能呢?》时,我从未想到它会对读者产生如此积极的影响。那些想要开始探索编程和数据科学领域的人向我寻求建议;还有一些人问我下一篇文章的发布日期;还有许多人询问如何顺利过渡到这个职业。我非常鼓励大家继续分享我在这个旅程的经验,学习,成功和失败,以帮助尽可能多的人过渡到一个充满无数好处和机会的职业生涯。亲爱的读者,谢谢你。 -罗伯特。 ...
活到老,学到老,程序员也该如此
全文共2763字,预计学习时长8分钟 图片来源:Pixabay 此前,“网传阿里巴巴要求尽快实现P8全员35周岁以内”的消息闹得沸沸扬扬。虽然很快被阿里辟谣,但苍蝇不叮无缝的蛋,无蜜不招彩蝶蜂。消息从何而来?真相究竟怎样?我们无从而知。我们只知道一个事实:不知从何时开始,程序猿也被划在了“吃青春饭”行业之列。 饱受“996ICU”摧残后,好不容易“头秃了变强了”,即将步入为“高...
Vue快速实现通用表单验证
本文开篇第一句话,想引用鲁迅先生《祝福》里的一句话,那便是:“我真傻,真的,我单单知道后端整天都是CRUD,我没想到前端整天都是Form表单”。这句话要从哪里说起呢?大概要从最近半个月的“全栈工程师”说起。项目上需要做一个城市配载的功能,顾名思义,就是通过框选和拖拽的方式在地图上完成配载。博主选择了前后端分离的方式,在这个过程中发现:首先,只要有依赖jQuery的组件,譬如Kendoui,即使使用...
2019年Spring Boot面试都问了什么?快看看这22道面试题!
Spring Boot 面试题 1、什么是 Spring Boot? 2、Spring Boot 有哪些优点? 3、什么是 JavaConfig? 4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? 5、Spring Boot 中的监视器是什么? 6、如何在 Spring Boot 中禁用 Actuator 端点安全性? 7、如何在自定义端口上运行 Sprin...
【图解】记一次手撕算法面试:字节跳动的面试官把我四连击了
字节跳动这家公司,应该是所有秋招的公司中,对算法最重视的一个了,每次面试基本都会让你手撕算法,今天这篇文章就记录下当时被问到的几个算法题,并且每个算法题我都详细着给出了最优解,下面再现当时的面试场景。看完一定让你有所收获 一、小牛试刀:有效括号 大部分情况下,面试官都会问一个不怎么难的问题,不过你千万别太开心,因为这道题往往可以拓展出更多有难度的问题,或者一道题看起来很简单,但是给出最优解,确实很...
关于裁员几点看法及建议
最近网易裁员事件引起广泛关注,昨天网易针对此事,也发了声明,到底谁对谁错,孰是孰非?我们作为吃瓜观众实在是知之甚少,所以不敢妄下定论。身处软件开发这个行业,近一两年来,对...
面试官:关于Java性能优化,你有什么技巧
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。 一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 J...
相关热词 c#如何定义数组列表 c#倒序读取txt文件 java代码生成c# c# tcp发送数据 c#解决时间格式带星期 c#类似hashmap c#设置istbox的值 c#获取多线程返回值 c# 包含数字 枚举 c# timespan
立即提问