摘要:
开发中经常碰到要处理很多数据的情况,然后希望在客户端展示当前的处理进度。之前有碰到客户端界面展示一个类似excel的报表,然后用户插入一批数据,然后点击保存后将所有数据一条条插入到数据库同时展示当前数据的处理结果。为了简便下面的代码已简单为主。方式1:就是获取一条数据,然后发一个Ajax请求,等返回结果然后继续处理下一条,再发一个Ajax请求,循环往复,但是这样就需要多少的请求啊……方式2:利用Response.Flush方法,第一次将全部的数据post到服务器,然后每次处理一条,利用Flush功能输出结果到客户端,这样就相当其实只有一个请求,然后浏览器一个接收数据,直到所有处理完成Respo 阅读全文
摘要:
有时候我们批量导入数据后,顺便要获取所有导入数据所产生的自增ID的值,用来插入到另一张日志表。这样就不能像以前一样插入一条然后获取其ID值,然后再插入一条再获取其ID值,因为是批量的。对于这样的需求我们可以通过inserted来获取刚插入的所有ID值create table #TempTable( ID int)insert into Student2 output inserted.ID into #TempTable select userName,age,city from Student 阅读全文
摘要:
开发过程中常常需要用到批量导入一批数据的问题,当然不可能通过后台代码循环这些数据集,然后一条一条的往数据库里插入,这样太不可取了。一般针对这样的批量导入数据,我可以将这些数据集拼接成XML字符串的方式然后传到数据库,通过解析XML的方式批量插入到表中。sql语句可以这样写create table Student( ID int identity(1,1), userName varchar(100), age smallint, city varchar(100))declare @hdoc intdeclare @SaveStr varchar(1000)set @Save... 阅读全文
摘要:
在做与服务器交互数据的时候,我们通常会发起一个Ajax请求,然后服务器返回一个类似'{x:1,y:1}'结构的json字符串,为了方便客户端处理我们会将其转换为一个对象直接量这很多的时候通过一个eval来实现varjsonStr='{x :1, y :1}';varjsonObj=eval('('+jsonStr+')');如果eval的时候不加括号还会报脚本错误,这是为什么呢?因为eval中 是一个执行环境,当你不用括号的时候{x :1, y :1}整个被解释成一个复合语句,{和}在这里就是一个符合语句的分隔符,而不是我们原本认 阅读全文
摘要:
不同域名下的文档因为安全问题,不允许相互之间文档的访问,但是有的时候却不得不需要这样的操作。因此我们一般可以采用window.name,hash,或者jsonp来实现跨域访问。不过自从html5出来以后,我们又可以多一种实现方式了postMessage,下面就是一个最简单的消息传递的例子,我们要实现的功能是将page1页面中的内容,发送到不同域名下的page2页面,然后page2将对应消息内容展示出来。图片效果首先我们需要两个页面,然后必须分别位于不同的域名下,当然本机肯定要有一个web服务器,接下来就通过修改host来实现不同域名访问主页http://www.postmessage1.com 阅读全文
摘要:
通过innerHTML的方式一般来说比通过构造节点的方式效率高的多,不过构造innerHTML字符串的过程也是一个值得优化的过程。比如我现在要通过一个数组,来拼接100个列表项的innerHTML, 我们可以有几种不同的方式来构造,但是效率上可能会不同。我们先构造一个数组用于待会要拼接的数据//构造100条数据vardatas=[];for(vari=1;i<=100;i++){datas.push('item'+i);}第一种最直接的,也是初学者就会想到的方式,所有项都直接用字符串拼接的方式,当然效率也最差了varresultHtml='';for(va 阅读全文
摘要:
项目中碰到一个要替换单词的功能,需求是:可以将产品标题中的某一单词替换成另外的单词,如果替换词不填就替换为空。这个需求设计到的具体细节是,前后有空格的单词,或者字符串首尾的单词可以被替换,举例1、"word wordword word" 该单词中如果被替换词为word,替换词为letter 则结果是 "letter wordword letter" 也就是说中间这个单词虽然也包含了word但是不能被替换,替换的只是前后有空格的2、"word-word word word" 该单词中如果被替换词为word,替换词为letter 则结果是 阅读全文
摘要:
在前端的开发中常常要展示用户输入的数据,假如用户输入<html,< 之类的html标签,而我们又要正正确展示出来怎么办呢?通常此类数据保存到数据库中时会被编码后存入,如<html被转换为<html 然后<被转换为&lt 这样在前台展示时就会正确显示了。但是如果我们要用前端操作的方式直接将不编码的数据展示呢?大多数浏览器中直接支持innerText的方式,这样其实浏览器自动将编码后的存入。但是FireFox浏览器却不支持该属性,不过它给我们提供了另外的一个属性textContent来替代,这样我们就可以写一个兼容浏览器的方式了f 阅读全文
摘要:
之前一直以为表单中的value存入什么,取出来就是什么,结果我发现自己理解错了。如<input type="hidden" value="<" id="hid1" name="hid1"/> 当我们读取隐藏域中的值时,发现展示出来的值时 '<' 而不是之前我认为的<而<span id="span1"><</span> 中通过innerHTML读出来的才会是< 阅读全文
摘要:
做项目的时候碰到要用js修改隐藏域中的值,结果修改结束,当我刷新页面的时候发现隐藏域中的值是js改动后的,而不是原来的默认值,这可让我纠结死了,后来发现表单元素有一个autocomplete属性,默认值时on,只要改成false就可以了。如果你有很多表单元素,那也没关系,你只要在form元素中设置下autocomplete=false就可以了,不用每个表单元素元素中去设置。这个问题还容易反应在另一种情况中,就是有选择框的时候,如checkbox radio时,当你选中后,再次刷新页面还是,处于选中状态,这时你就可以设置下这个属性来使其恢复未选中状态 阅读全文