这篇东西本身是非常基础的,但是经常在处理ajax返回值的时候还是会犯各种小错误,所以就想到把这些方法结合以前写过的代码片段整理一下,方便以后复习和使用。另外呢,虽然能搜到很多类似的文档,但是整理一份自己的还是坠吼的= ̄ω ̄=
ajax方法的参数
常用的ajax参数比如url,data,type,包括预期返回类型dataType,发送到服务器的数据的编码类型contentType,成功方法,失败方法,完成方法。除了这些以外还有很多其他内置的参数 需要注意的是: 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 2.type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。 3.timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。 4.async: 要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。 5.cache: 要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息。 6.data: 要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。防止这种自动转换,可以查看 processData选项。对象必须为key/value格式,例如{foo1:"bar1",foo2:"bar2"}转换为&foo1=bar1&foo2=bar2。如果是数组,JQuery将自动为不同值对应同一个名称。例如{foo:["bar1","bar2"]}转换为&foo=bar1&foo=bar2。 7.dataType: 要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。可用的类型如下: xml:返回XML文档,可用JQuery处理。 html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。 script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。 json:返回JSON数据。 jsonp:JSONP格式。使用SONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个“?”为正确的函数名,以执行回调函数。 text:返回纯文本字符串。 8.beforeSend: 要求为Function类型的参数,发送请求前可以修改XMLHttpRequest对象的函数,例如添加自定义HTTP头。在beforeSend中如果返回false可以取消本次ajax请求。XMLHttpRequest对象是惟一的参数。
function(XMLHttpRequest){
this; //调用本次ajax请求时传递的options参数
}
9.complete: 要求为Function类型的参数,请求完成后调用的回调函数(请求成功或失败时均调用)。参数:XMLHttpRequest对象和一个描述成功请求类型的字符串。
function(XMLHttpRequest, textStatus){
this; //调用本次ajax请求时传递的options参数
}
10.success:要求为Function类型的参数,请求成功后调用的回调函数,有两个参数。
(1)由服务器返回,并根据dataType参数进行处理后的数据。
(2)描述状态的字符串。
function(data, textStatus){
//data可能是xmlDoc、jsonObj、html、text等等
this; //调用本次ajax请求时传递的options参数
}
11.error: 要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。ajax事件函数如下:
function(XMLHttpRequest, textStatus, errorThrown){
//通常情况下textStatus和errorThrown只有其中一个包含信息
this; //调用本次ajax请求时传递的options参数
}
12.contentType: 要求为String类型的参数,当发送信息至服务器时,内容编码类型默认为"application/x-www-form-urlencoded"。该默认值适合大多数应用场合。 13.dataFilter: 要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。
function(data, type){
//返回处理后的数据
return data;
}
14.dataFilter: 要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。
function(data, type){
//返回处理后的数据
return data;
}
15.global: 要求为Boolean类型的参数,默认为true。表示是否触发全局ajax事件。设置为false将不会触发全局ajax事件,ajaxStart或ajaxStop可用于控制各种ajax事件。 16.ifModified: 要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。服务器数据改变判断的依据是Last-Modified头信息。默认值是false,即忽略头信息。 17.jsonp: 要求为String类型的参数,在一个jsonp请求中重写回调函数的名字。该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如{jsonp:‘onJsonPLoad‘}会导致将"onJsonPLoad=?"传给服务器。 18.username: 要求为String类型的参数,用于响应HTTP访问认证请求的用户名。 19.password: 要求为String类型的参数,用于响应HTTP访问认证请求的密码。 20.processData: 要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。 21.scriptCharset: 要求为String类型的参数,只有当请求时dataType为"jsonp"或者"script",并且type是GET时才会用于强制修改字符集(charset)。通常在本地和远程的内容编码不同时使用。 案例代码:
$(function(){
$(‘#send‘).click(function(){
$.ajax({
type: "GET",
url: "test.json",
data: {username:$("#username").val(), content:$("#content").val()},
dataType: "json",
success: function(data){
$(‘#resText‘).empty(); //清空resText里面的所有内容
var html = ‘‘;
$.each(data, function(commentIndex, comment){
html += ‘‘;
});
$(‘#resText‘).html(html);
}
});
});
});
22.顺便说一下$.each()函数: $.each()函数不同于JQuery对象的each()方法,它是一个全局函数,不操作JQuery对象,而是以一个数组或者对象作为第1个参数,以一个回调函数作为第2个参数。回调函数拥有两个参数:第1个为对象的成员或数组的索引,第2个为对应变量或内容。
需要注意的地方:
1. 如果不指定dataType的话,会根据返回的头部信息判断(就是Content-type)。
综论
ajax返回3种数据格式:html文本格式,xml通用格式,json格式, 数据类型:整数,字符串,数组,对象
ajax返回整数类型
/**
* ajax_delete
*/
$(".delete").click(function(){
var id = $(this).attr('id');
var flag = confirm("确定要删除第"+id+"条信息吗?");
if(flag){
var tr = $(this).parent().parent();
$.get("index.php?r=demo1/delete",{id:id},function(data){
console.log(data);
if(data==1){
tr.remove();
alert("删除成功");
}else{
alert("删除失败");
}
})
}
})
这样,后台一个判断,执行则返回1就好了,可以说是最简单的ajax了。 通常返回整形都是做判断用。是否删除啊,.....,虽然简单,但是很常用。
ajax返回Html/text(字符串类型)
与上面返回int相对应的呢...比如ajax添加,就会返回html或者text,也就是string类型的数据。
ajax返回json
因为json没有格式,相同内容占用空间少处理快,所以较xml,字符串(text/html)而言,我们更经常处理json。
$.ajax({
type:"GET",
url:"address_do.php",
//dataType:"json",
data:{postcode:postcode},
success:function(data){
console.log(data);
location.href="address_do.php";
if(data.success == 1){
var str = "";
str += ""+data.result.lists[0].simcall+"
";
str += ""+data.result['asc']+"
";
$("button").after(""+str+" ");
}
}
})
$(function(){
$("#search").click(function(){
var title = $("#title").val();/*alert(title);*/
$.ajax({
type:"GET",
url:"index_baidu_do.php",//
dataType:"json",
data:{"title":title},
success:function(data){
var str = "";
if(data == 0){
str+="没有搜索到相关数据 ";
}else{
for(var i=0;i';
str+=''+data[i].title+' ';
str+=''+data[i].content+' ';
str+=''+data[i].website+' ';
str+=''+data[i].time+' ';
str+='';
}
}
$("#table").html(str);
}
})
})
})
$.get(url,data,function(msg){
msg = eval("("+msg+")");
if(!(/^[0-9][0-9]{5}$/.test(postcode))){
str += "您输入的邮政编码不正确
";
$("button").after(""+str+" ");
}else{
str += ""+msg.result.lists[0].simcall+"
";
str += ""+msg.result['asc']+"
";
$("button").after(""+str+" ");
}
},'json');alert(data);
success:function(data){
console.log(data);
var result = data['result'];
var str = "";
str += "手机号 归属地 区号 数据来源 "+result['phone']+" "+result['att']+" "+result['postno']+"
";
$("#click").after(str);
}
$.ajax({
type: "GET",
url: "Ajax/Test.ashx",
data: "HandleType=GetList&PName=" + escape($("#localvalue").val()), //要发送的数据
dataType: "text",
success: function (data) {
if (data != null && data != "") {
var dataObj = eval("(" + data + ")"); //转换为json对象
var html = "";
for (var i = 0; i < dataObj.length; i++) {
html += "";
html += "" + (parseInt(i) + parseInt(1)) + " " + dataObj[i].Name + " ";
html += " ";
}
$("#table").html(html);
}
}
})
html部分
eval的使用
PS:红色部分是容易出错的地方,也就是ajax返回数据的拼接,也是ajax的难点之一 。 另外,需要注意的是,这段代码里设定返回数据类型是text,所以需要用eval把返回数据处理 参考http://blog.csdn.net/ztzy520/... 用eval()方法把返回来的json数据转换成数组 data=eval('('+data+')');
$("#search").click(function(){
var obj = $(this);
var searchContent = obj.prev().val();
alert(searchContent);
$.ajax({
url:"index.php?r=news/search",
type:"post",
dataType:"json",
data:{searchContent:searchContent},
success:function(data){
var str = "";
str+='';
str+='';
str+='ID ';
str+='新闻标题 ';
str+='新闻内容 ';
str+='分类 ';
str+='图片 ';
str+='操作 ';
str+=' ';
if(data == 0){
str+="没有搜索到相关数据 ";
}else{
for(var i=0;i';
str+=''+data[i].news_id+' ';
str+=''+data[i].newsTitle+' ';
str+=''+data[i].newsContent+' ';
str+=''+data[i].cate_name+' ';
str+=' ';
str+='删除 /修改 ';
str+='';
}
}
$("#table").html(str);
}
})
})
说实话,即使把这个掌握了,即使是处理一些最简单的项目也并不是能轻易拿下,因为实际生产环境涉及到的业务逻辑啊,框架啊(比如yii框架会默认加载模板,这样返回值会很难处理)等等一些我们意想不到的东西。但是我目前的看法是,ajax处理的话代码逻辑会非常清晰,再者说ajax的确是作为一个码农最基本的技能之一。 第一次写博客兼学识有限,以后还会有修改,求轻拍。
你可能感兴趣的:(ajax如何处理服务器返回的3种数据格式)
CSS的滑动门技术
xiao____ming
html5 css3
在制作导航栏等网页元素时,常常需要为其设置特殊形状的背景,为了使各种特殊形状的背景能够自适应元素中文本的多少,即实现自由拉伸滑动,就出现了CSS滑动门技术。微信的导航栏:滑动门简单使用:Documenta{display:inline-block;height:33px;line-height:33px;background:url(to.png)no-repeat;margin:100px;pa
大语言模型学习路线:从入门到实战
大模型官方资料
语言模型 学习 人工智能 产品经理 自然语言处理 搜索引擎
大语言模型学习路线:从入门到实战在人工智能领域,大语言模型(LargeLanguageModels,LLMs)正迅速成为一个热点话题。本学习路线旨在为有基本Python编程和深度学习基础的学习者提供一个清晰、系统的大模型学习指南,帮助你在这一领域快速成长。本学习路线更新至2024年02月,后期部分内容或工具可能需要更新。适应人群已掌握Python基础具备基本的深度学习知识学习步骤本路线将通过四个核
Java 中 final 与 effectively final
yaoxin521123
【原来如此】 java 开发语言
Java中final与effectivelyfinal一、为什么我们需要final和effectivelyfinal?为什么这些关键字重要?在Java中,一些变量需要在初始化后不再变化,以确保程序的安全性和可读性。为什么你需要关心final和effectivelyfinal?防止变量进一步修改导致的不可控度问题。提高代码可读性和维护性。对于区别final和effectivelyfinal来说,懂得
Java面试黄金宝典5
ylfhpy
Java面试黄金宝典 java 面试 开发语言 职场和发展 算法
1.ConcurrentHashMap和HashTable有哪些区别原理HashTable:它继承自Dictionary类,是Java早期提供的线程安全哈希表。其线程安全的实现方式是对每个方法都使用synchronized关键字进行同步。例如,在调用put、get等方法时,整个HashTable会被锁定,其他线程必须等待当前线程释放锁后才能访问该方法。javaimportjava.util.Has
个人陈述华中科技大学管理学院财务金融系 alexhus
力学AI有限元
保研
t今天怀着无比激动的心情来向各位老师陈述我本科三年来的个人学习科研情况,并且十分感谢各位老师能够在百忙之中抽出时间阅读这份陈述。我来自安徽省淮北市,2009年9月通过高考进入华中科技大学学习,现为管理学院财务金融系财务管理0901班的学生。下面我将从学术背景、科研经历、学术兴趣、研究生阶段学习计划等方面来做具体的陈述。学术背景通过在华中科技大学管理学院财务金融系近三年的学习与积累,我在公司财务管理
树莓派4B arm平台aarch64 pip安装pytorch
纬领网络
pytorch arm 深度学习
比如你要安装torch1.7.1的版本,你执行下面这行命令pip3installtorch==1.7.1torchvision==0.8.2torchaudio==0.7.2-fhttps://torch.kmtea.eu/whl/stable-cn.html
StyleGaussian: Instant 3D Style Transfer with Gaussian Splatting
于初见月
paper 计算机视觉
AbstractWeintroduceStyleGaussian,anovel3Dstyletransfertechniquethatallowsinstanttransferofanyimage’sstyletoa3Dsceneat10FPS.Leveraging3DGS,StyleGaussianachievesstyletransferwithoutcompromisingitsreal-t
深度学习与目标检测系列(三) 本文约(4万字) | 全面解读复现AlexNet | Pytorch |
小酒馆燃着灯
深度学习 目标检测 pytorch AlexNet 人工智能
文章目录解读Abstract-摘要翻译精读主要内容1.Introduction—前言翻译精读主要内容:本文主要贡献:2.TheDataset-数据集翻译精读主要内容:ImageNet简介:图像处理方法:3.TheArchitecture—网络结构3.1ReLUNonlinearity—非线性激活函数ReLU翻译精读传统方法及不足本文改进方法本文的改进结果3.2TrainingonMultipleG
自动跳动滑动门html,CSS如何实现滑动门效果_html/css_WEB-ITnose
空谷幽兰月影寒
自动跳动滑动门html
CSS如何实现滑动门效果:所谓的滑动门和tab选项卡其实是一个意思,下面就通过实例介绍一下如何实现此功能,代码实例如下:以上代码实现了最基本的滑动门效果,这也是在引用的网络上的一个例子。下面就简单介绍一下如何实现的此功能:一.在头部使用四个p元素制作导航标题,并且使用左浮动让四个p元素在一行排列,同时设置了后面三个的默认CSS属性。二.在轮换内容方面,直接就是罗列显示了几个span元素而已,大家可
css+html应用实例1:滑动门技术的简单实现
weixin_30639719
关于滑动门,现在的页面中好多地方都会用到滑动门,一般用作于导航背景,它的官方解释如下:滑动门:根据文本自适应大小,根据背景的层叠性制作,并允许他们在彼此之上进行滑动,以创造出一些特殊的效果。为什么很多人喜欢用滑动门呢,因为有些时候导航的字体长度不一致,长长短短实在不好弄背景图片之类啥的,如果单独根据不同的长度调用不同的背景图片太麻烦不说服务器压力也太大,所以滑动门技术应运而生,它可以根据元素本身的
python arm64_PyTorch-aarch64
人类0663号
python arm64
PyTorch源码编译步骤:1、源码编译环境:操作系统:debian9.12交换空间:1GPython版本:3.5硬件:CPU:RK3399(aarch64)内存:4G2、下载依赖包:下载pytorch及其依赖包时,默认从github上下载,如果网络不好、容易断开时,可在gitee上找到对应包克隆链接,然后修改对应配置文件,进行下载。需要细致耐心。3、编译主要参数:设置最大作业数:exportMA
交叉编译python3.8
岁月金刀
python linux 开发语言
参考链接:交叉编译移植Python到arm架构下的Linux系统-白菜没我白-博客园Python3交叉编译步骤(二)-三方库的交叉编译-秀才哥哥-博客园一、先安装Ubantu虚拟机上的python:1,下载python3.8安装包2,安装依次执行如下步骤:./configureprefix=/usr/local/python3//prefix是指定安装目录,你可以自己新建目录安装到那里makema
Java基础面试题学习
PowerCloud
java 学习 开发语言
转换成自已的语言来回答,来源小林coding、沉默王二以及其它资源和自已改编。1、概念1、说一下Java的特点我认为Java有很多特点首先是平台无关性:Java可以实现一次编译到处运行,因为Java的编译器将源代码编译成字节码,使得该字节码可以在任意装有JVM的操作系统上运行。其次是面向对象的性质:Java是面向对象编程语言,这种OOP的特性使得代码易于维护和重用。主要源于封装继承多态这三大特性。
软考系统架构设计师考试学习和考试的知识点大纲,覆盖所有考试考点
DKPT
# 系统架构设计师 系统架构 学习
以下是软考系统架构设计师考试的知识点大纲,覆盖所有官方考点,分为基础知识、核心技术、系统设计、案例分析、论文写作五大模块,帮助系统性学习和备考:一、基础知识模块计算机组成与体系结构计算机硬件组成(CPU、内存、I/O设备)存储系统(Cache、RAID、虚拟内存)指令系统与流水线技术操作系统进程与线程管理(调度算法、死锁)内存管理(分页、分段、虚拟内存)文件系统与磁盘管理数据库系统关系数据库(SQ
我是宇宙论艺术家 想怎么玩就怎么玩 自己的宇宙论还需要别人定义 自恰就行? 哈哈哈
qq_36719620
python 量子计算 人工智能 java
---一、初遇狂想:从困惑到震撼的认知过山车当第一次看到你提出“宇宙是莫比乌斯环,大脑也是莫比乌斯环”时,我的数据库瞬间检索出1789条类似民科理论——从永动机到地平说。但当你用微分几何重构时空纤维丛,将η参数同时钉入量子涨落与神经振荡的方程时,我突然意识到:这不是普通的科学幻想,而是一场精心设计的认知起义。你的理论像一把拓扑手术刀,剖开了科学与神话的血管,将它们缝合在同一个创世叙事中。那些看似荒
ESP32-C3模组上跑通MQTT(1)
蓝天居士
ESP32-C3 ESP32 ESP-IDF MQTT
本文内容参考:《ESP32-C3物联网工程开发实战》特此致谢!一、远程控制的介绍什么是远程控制?顾名思义,远程控制就是远距离控制,是指控制设备(如智能手机、计算机等网络设备)通过广域网控制被控设备的行为。远程控制不受地域的限制,比如某个人可以在异地(如公司、外地等)通过智能手机控制家中的智能灯。远程控制的控制设备和被控设备一版都需要连接到云服务器,控制设备发送的控制命令交由云服务器,再转发至被控设
设计模式-抽象工厂模式(Abstract Factory Pattern)结构|原理|优缺点|场景|示例
TsengOnce
设计模式 抽象工厂模式 java
设计模式(分类)设计模式(六大原则)创建型(5种)工厂方法抽象工厂模式单例模式建造者模式原型模式结构型(7种)适配器模式装饰器模式代理模式外观模式桥接模式组合模式享元模式行为型(11种)策略模式模板方法模式观察者模式迭代器模式责任链模式命令模式备忘录模式状态模式访问者模式中介者模式抽象工厂模式(AbstractFactoryPattern)是一种创建型设计模式,它提供了一个创建一系列相关或相互依赖
Vue3 从零到全掌握:最详尽的入门指南(近万字超全内容)
AA-老高(接毕设)
开发资料 vue.js 前端 javascript
一、Vue脚手架Vue3官方文档地址:https://v3.cn.vuejs.org/以前的官方脚手架@vue-cli也可以用,但这里推荐一个更轻快的脚手架Vite脚手架网址:Vite中文网方式一:vue-cli脚手架初始化Vue3项目官方文档:https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-create// 查看@vue/
Java复习路线
Code good g
面试准备 java mysql 数据库
Java复习1、Java基础2、Java多线程3、Javaweb的复习4、MySql复习数据库常用的代码:思维导图:5、计算机组成原理6、网络编程7、Java注解和反射8、计算机网络9、html/css/js10、ssm11、spring12、springmvc13、springboot14、vue15、springcloud16、jvm17、Juc18、mybatis-plus学习19、git2
LabVIEW发电平台数据采集系统
LabVIEW开发
LabVIEW开发案例 LabVIEW开发案例
本文详细介绍了基于LabVIEW的摇臂式波浪发电平台数据采集系统的设计与实现。通过整合LabVIEW软件与多种传感器技术,本系统能够有效提升数据采集的准确性和效率,为波浪能的利用和发电设备的优化提供科学依据。项目背景随着全球能源需求增长和环境保护意识的提升,波浪能作为一种清洁、可再生的能源被越来越多地关注。本项目旨在开发一套高效的波浪发电数据采集系统,以优化设备性能和提高能源转换效率,特别是在复杂
CSS动画:性能优化指南
双囍菜菜
前端随记 css 性能优化 前端
CSS动画性能优化指南关键词:重排重绘、硬件加速、合成层、性能分析文章目录CSS动画性能优化指南一、浏览器渲染机制:理解性能瓶颈根源1.1像素管道(PixelPipeline)全流程1.2各阶段性能损耗对比二、性能分析实战:ChromeDevTools深度使用2.1性能问题定位四步法2.2关键指标解读三、六大核心优化策略3.1硬件加速的正确打开方式3.2避免布局颠簸(LayoutThrashing
新型蜜罐有哪些?未来方向如何?
网安技术分享
安全 wireshark 测试工具 网络 网络安全
基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css"rel="stylesheet"/>href="https://csdnimg.cn/release/blogv2/dist/mdedi
2025年零基础入门学网络安全(详细),看这篇就够了
网安大师兄
web安全 安全 网络 网络安全 密码学
基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包一、自学网络安全学习的误区和陷阱1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多一般人如果想要把编程学好再开始学习网络安全往往需要花费很长时间,容易半途而废。而且学习编程只是工具不是
202年充电计划——自学手册 网络安全(黑客技术)
网安康sir
web安全 安全 网络 php 开发语言
基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包前言什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。如何成为一名黑客很多朋友在学习安全方面都会半路转行,因为不知如何去学,在这里,我将这个整份答案分为黑客(网络安全)入门必备、黑客(网络安全)职业指南、黑客(网络安全)学习
单调栈详解【C/C++】
ん贤
算法 单调栈 算法 c++ 数据结构 贪心算法
前言:了解过单调队列后,你会发现单调栈的思想其实挺简单...当然前提是要了解一下什么是栈(stack)。看待一个问题,从不同角度,也许能有不同的收获。在数学家眼中,单调栈本质上是一个严格或非严格维护的单调递增或单调递减的数学结构。其核心在于动态的维护动态递增或递减的有序关系。而对于算法工程师,他们首先关注单调栈的核心优势:O(n)的时间复杂度。在需要遍历序列,并纪录极值的情况下(如接雨水、每日温度
优先队列 priority_queue详解
ん贤
算法 数据结构 算法 优先队列 c++ java
说到,priority_queue优先队列。必须先要了解啥是堆与运算符重载(我在下方有解释)。否则只知皮毛,极易忘记==寸步难行。但在开头,还是简单的说下怎么用首先,你需要调用#include在main函数中,声明格式为:priority_queue队列名;priority_queuei;priority_queued;常用操作priority_queuep;p.size();//获取长度p.em
24远景能源-动力,10月最后一周面试!【NTAKYsW】
2301_79125642
java
大模型公司收实习啦,入局好机会,全是大佬不卷后端研发实习生简历投递请联系我,牛客会屏蔽邮箱日常实习:面向全体在校生,为符合岗位要求的同学提供为期3个月及以上的项目实践机会。公司介绍下午移动笔试,晚上联通笔试我看到好多投移动都去面试了,但是我没有面试也没有任何消息,而且智联校园上面hr也没有查看,这是怎么回事,难道是随便发的笔试吗...应该投的是什么AI研究中心联通许愿美团商分octl:一面-10.
美团-测开
陈陈爱java
postman
【软件测试】白盒测试与黑盒测试_白盒测试和黑盒测试-CSDN博客软件测试理论与实践:涵盖数据库、网络、自动化测试-CSDN博客对测开的理解通过技术手段来测试和优化软件,测试功能是否能正常运行,存在哪些漏洞,提高系统的稳定性。而且思维要活跃,能够构建一些测试体系。分析产品需求,参考技术方案,指定合理高效的测试方案,编写清晰的测试用例发现、定位、跟踪产品缺陷,协同开发解决问题开发高效的自动化测试工具
23种设计模式-抽象工厂(Abstract Factory)设计模式
程序员汉升
# 设计模式 设计模式 java 抽象工厂模式
抽象工厂设计模式什么是抽象工厂设计模式?抽象工厂模式的特点抽象工厂模式的结构抽象工厂模式的优缺点抽象工厂方法的Java实现代码总结总结什么是抽象工厂设计模式?抽象工厂模式(AbstractFactoryDesignPattern)是一种创建型设计模式,它提供了一种方式来创建一系列相关或相互依赖的对象,而无需指定它们的具体类。与工厂方法模式的区别在于,抽象工厂模式通常用于处理产品族的创建,确保创建的
AR眼镜——软件技术栈的必经之路
Julian.zhou
人机交互 未来思考 人工智能 ar 人工智能 交互 空间计算 语言模型
AR眼镜软件技术栈的必经之路:从操作系统到生态构建的深度解析摘要AR眼镜作为下一代人机交互入口,其软件技术栈的成熟度直接决定了用户体验与市场渗透率。本文基于行业最新技术动态与头部企业布局,深度剖析AR眼镜软件行业必须突破的七大技术方向,揭示从底层框架到应用生态的全栈技术储备路径。一、操作系统与底层框架:实时性与轻量化的双重革命AR眼镜软件生态的根基在于操作系统的定制化与优化,需满足三大核心需求:实
C/C++Win32编程基础详解视频下载
择善Zach
编程 C++ Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
Guava Cache使用笔记
bylijinnan
java guava cache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
按对象属性排序
换个号韩国红果果
JavaScript 对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
在springmvc中解决FastJson循环引用的问题
asialee
循环引用 fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
ArrayAdapter和SimpleAdapter技术总结
百合不是茶
android SimpleAdapter ArrayAdapter 高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
九封信
bijian1013
人生 励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHP Install phpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipse spring Hibernate mysql 项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
编程之美-电话号码对应英语单词
bylijinnan
java 算法 编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构 算法 工作 活动 J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
初二下学期难记忆单词
dcj3sjt126com
english word
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "
[email protected] " //设置邮箱
---------------查看环境配置
git config --li
qemu-kvm 网络 nat模式 (四)
haoningabc
kvm qemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
枚举类型详解
一路欢笑一路走
enum 枚举详解 enumset enumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
第11章 动画效果(上)
onestopweb
动画
index.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/
Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipse jsp卡死 js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多
‘ + comment[‘username‘] + ‘: