JavaScript AJAX stream 流式显示
流式实现
原理就是设置定时器,定时的查看AJAX对象的状态并更新内容,如果传送完成,就取消定时器。
- function ajax_stream(url,data,element) {
- var xmlHttp=null;
- if (window.XMLHttpRequest)
- {// code for IE7, Firefox, Opera, etc.
- xmlHttp=new XMLHttpRequest();
- }
- else if (window.ActiveXObject)
- {// code for IE6, IE5
- xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
- }
- if (xmlHttp==null)
- {
- alert("Your browser does not support XMLHTTP.");
- element.val('Your browser does not support XMLHTTP. Click the LOG link to monitor the procedure.');
- return 0;
- }
- var xhr = xmlHttp;
- xhr.open('POST', url, true);
- // 如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:
- xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
- xhr.send(data);
- var timer;
- timer = window.setInterval(function() {
- if (xhr.readyState == XMLHttpRequest.DONE) {
- window.clearTimeout(timer);
- }
- element.val(xhr.responseText);
- }, 1000);
- }
post数据转换
由于标准实现中的send只能接受以下几种输入,所以需要提前对需要传递的数据对象转换为字符串或者FormData格式,这一点就不如JQuery的方便了,但是JQuery如何在传输中间实现事件响应还不得而知,所以不能用,再或者把所有的对象转换中JSON。
- void send();
- void send(ArrayBuffer data);
- void send(Blob data);
- void send(Document data);
- void send(DOMString? data);
- void send(FormData data);
下面是转换的代码,如果浏览器支持FormData就转换,否则转成字符串。
- function ajax_generate_data(jsobj) {
- var i;
- if (window.FormData) {
- var data = new FormData();
- for i in jsobj {
- data.append(i,jsobj[i]);
- }
- } else {
- var data = '';
- var datas = [];
- for i in jsobj {
- // for the values so that possible & contained in the strings do not break the format
- var value = encodeURIComponent(jsobj[i]);
- datas.append(i + '=' + value);
- }
- data = datas.join('&')
- }
- console.log(data);
- return data;
- }
JavaScript AJAX stream 流式显示的更多相关文章
- 第46天学习打卡(四大函数式接口 Stream流式计算 ForkJoin 异步回调 JMM Volatile)
小结与扩展 池的最大的大小如何去设置! 了解:IO密集型,CPU密集型:(调优) //1.CPU密集型 几核就是几个线程 可以保持效率最高 //2.IO密集型判断你的程序中十分耗IO的线程,只要大于 ...
- Java的Stream流式操作
前言 最近在实习,在公司看到前辈的一些代码,发现有很多值得我学习的地方,其中有一部分就是对集合使用Stream流式操作,觉得很优美且方便.所以学习一下Stream流,在这里记录一下. Stream是什 ...
- java1.8新特性之stream流式算法
在Java1.8之前还没有stream流式算法的时候,我们要是在一个放有多个User对象的list集合中,将每个User对象的主键ID取出,组合成一个新的集合,首先想到的肯定是遍历,如下: List& ...
- Stream流式编程
Stream流式编程 Stream流 说到Stream便容易想到I/O Stream,而实际上,谁规定“流”就一定是“IO流”呢?在Java 8中,得益于Lambda所带来的函数式编程,引入了一个 ...
- Java8——Stream流式操作的一点小总结
我发现,自从我学了Stream流式操作之后,工作中使用到的频率还是挺高的,因为stream配合着lambda表达式或者双冒号(::)使用真的是优雅到了极致!今天就简单分(搬)享(运)一下我对strea ...
- Java8中的Stream流式操作 - 入门篇
作者:汤圆 个人博客:javalover.cc 前言 之前总是朋友朋友的叫,感觉有套近乎的嫌疑,所以后面还是给大家改个称呼吧 因为大家是来看东西的,所以暂且叫做官人吧(灵感来自于民间流传的四大名著之一 ...
- Stream流式计算
Stream流式计算 集合/数据库用来进行数据的存储 而计算则交给流 /** * 现有5个用户,用一行代码 ,一分钟按以下条件筛选出指定用户 *1.ID必须是偶数 *2.年龄必须大于22 *3.用户名 ...
- Java8新特性 Stream流式思想(二)
如何获取Stream流刚开始写博客,有一些不到位的地方,还请各位论坛大佬见谅,谢谢! package cn.com.zq.demo01.Stream.test01.Stream; import org ...
- Java学习:Stream流式思想
Stream流 Java 8 API添加了一种新的机制——Stream(流).Stream和IO流不是一回事. 流式思想:像生产流水线一样,一个操作接一个操作. 使用Stream流的步骤:数据源→转换 ...
随机推荐
- uitextview 最后一行遮挡
这只 uiscrollerview 的 setContentOffset CGRect line = [textView caretRectForPosition: textView.selected ...
- openresty入门12 openresty php 整合
利用 openresty 的 drizzle-nginx-module模块 读取数据 传递到 php后端 利用到 openresty 的并发,无阻塞,mysql连接池,memcache|redis ...
- 数据库连接池问题 Max Pool Size
摘自: http://blog.csdn.net/chensirbbk/article/details/6225268 Timeout expired 超时时间已到. 达到了最大池大小 错误及Max ...
- 在xargx命令中如何使用重定向
ls *.txt | xargs -i -n 1 sh -c "cut -f 1-3 {} > ../{}"即可
- Overcome the Dilemma of "unlock" and "trust"
When examining an Android phone, we have to overcome some barriers first so that we could extract da ...
- 智能手机取证利器再进化-UFED Cloud Analyzer
智能手机在现代人生活中,和钱包,钥匙一样,成了不可或缺的生活必需品,举凡食衣住行育乐都需要携带随身使用,因此,智能手机里所存放的,就是一个人的生活缩影,只是人们多半不自知智能手机竟是如此贴心的为你/妳 ...
- hdu2072
注意输入全是0的情况. #include <stdio.h> #include <string.h> #include <algorithm> using name ...
- SQL更新表的字段
Oracle: alter table CAPIAGENTLOG modify(clientcode nvarchar2()) SQL Server: alter table CAPIAGENTLOG ...
- Sqlserver替换函数Replace
Sqlserver中Replace函数:实现字段中某个字符串批量替换. 注意:强烈建议替换前备份数据库以免发生灾难性后果. update article set [Content]=replace([ ...
- zedboard上移植OPENCV库
zedboard上移植OPENCV库 之前做了很多移植OPENCV库的工作,但是需要包含的各种库,需要交叉编译,X264 ,JPGE ,FFMPGE等等 注意:在<嵌入式系统软硬件协同设计实战指 ...