jquery文件下载插件,auto.js打包插件下载
老铁们,大家好,相信还有很多朋友对于jquery文件下载插件和auto.js打包插件下载的相关问题不太懂,没关系,今天就由我来为大家分享分享jquery文件下载插件以及auto.js打包插件下载的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
JqueryAjax请求文件下载操作失败怎么处理
这次给大家带来Jquery Ajax请求文件下载操作失败怎么处理,处理Jquery Ajax请求文件下载操作失败的注意事项有哪些,下面就是实战案例,一起来看一下。
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯,本文重点给大家介绍Jquery Ajax请求文件下载操作失败的原因分析及解决办法,对ajax请求失败的原因分析感兴趣的朋友一起学习把
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。
废话少说,直接进入正题,我们先来分析一下失败的原因
一、失败的原因
那是因为response原因,一般请求浏览器是会处理服务器输出的response,例如生成png、文件下载等,然而ajax请求只是个“字符型”的请求,即请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,虽然可以读取到返回的response,但只是读取而已,是无法执行的,说白点就是js无法调用到浏览器的下载处理机制和程序。
二、解决方案
1)可以使用jquery创建表单并提交实现文件下载;
var form=$("<form>");
form.attr("style","display:none");
form.attr("target","");
form.attr("method","post");
form.attr("action",rootPath+"T_academic_essay/DownloadZipFile.do");
var input1=$("<input>");
input1.attr("type","hidden");
input1.attr("name","strZipPath");
input1.attr("value",strZipPath);
$("body").append(form);
form.append(input1);
form.submit();
form.remove();2)可以直接使用a标签实现文件下载;
<a href=”下载地址”>点击下载</a>
3)使用隐藏iframe或新窗体解决。
PS:AJAX请求$.ajax方法的使用
使用jQuery的$.ajax方法可以更为详细的控制AJAX请求。它在AJAX请求上施加细粒度级别的控制。
$.ajax方法语法
$.ajax(options)
参数
options
(对象)一个对象的实例,其属性定义这个操作的参数。详情见下表。
返回值
XHR实例
options详细范围值
名称
类型
描述
url
字符串
请求的url地址
type
字符串
将要使用的HTTP方法。通常是POST或GET。如果省略,则默认为GET
data
对象
一个对象,其属性作为查询参数而传递请求。如果是GET请求,则把数据作为查询字符串传递;如果是POST请求,则把数据作为请求体传递。在这两种情况下,都是由$.ajax()实用工具函数来处理值的编码
dataType
字符串
一个关键字,用来标识预期将被响应所返回的数据的类型。这个值决定再把数据传递给回调函数之前(如果有)进行什么后续处理。有效值如下:
xml-响应文本被解析为XML文档,而作为结果的XML DOM被传递给回调函数
html-响应文本未经处理就被传递给回调函数。在已返回HTML片段内的任何<script>块将被求值
json-响应文本被求值为JSON字符串,而作为结果的对象被传递给回调函数
jsonp-与json相似,不同之处是提供远程脚本支持(假定远程服务器支持)
script-响应文本被传递给回调函数。在任何回调函数被调用之前,响应被作为一个或多个JavaScript语句而进行处理
text-响应文本被假定为普通文本。服务器资源负责设置适当的内容类型响应标头。如果省略这个属性,则不对响应文本进行任何处理或求值就传递给回调函数
timeout
数值
设置Ajax请求的超时值(毫秒)。如果请求在超时值到期之前仍未完成,则中止请求并且调用错误回调函数(如果已定义)
global
布尔型
启用或禁用全局函数的触发。这些函数可以附加到元素上,并且在Ajax调用的不同时刻或状态下触发。默认启用全局函数触发
contentType
字符串
将要在请求上指定的内容类型。默认为application/x-www-form-urlencoded(与表单提交所使用的默认类型相同)
success
函数
如果请求的响应指示成功状态码,则这个函数被调用。响应体作为第一个参数被返回给这个函数,并且根据指定的dataType属性进行。第二个参数是包含状态码的字符串—这种情况下永远为成功状态码
error
函数
如果请求的响应返回错误状态码,则这个函数被调用。三个实参被传递给这个函数:XHR实例、状态消息字符串(在这种情况下永远为错误状态码)以及XHR实例所返回的异常对象(可选)
complete
函数
请求完成时被调用。两个实参被传递:XHR实例和状态消息字符串(成功状态码或错误状态码)。如果也指定了success或error回调函数,则这个函数在success或error回调函数调用之后被调用
beforeSend
函数
在发起请求之前被调用。这个函数被传递XHR实例,并且可以用来设置自定义的标头或执行其他预请求操作
async
布尔型
如果指定为false,则请求被提交为同步请求。在默认的情况下,请求是异步的
processData
布尔型
如果设置为false,则阻止已传递数据被加工为URL编码格式。默认情况下,数据被加工为URL编码格式(适用于类型为application/x-www-form-urlencoded的请求)
ifModified
布尔型
如果设置为true,则自从上一次请求以来,只有在响应内容没有改变的情况下(根据Last-Modified标头)才允许请求成功。如果省略,则不执行标头检查
下面看个例子,尽可能多的用到options中的选项
客户端代码:
<html xmlns="">
<head>
<title></title>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$().ready(function(){
$('#selectNum').change(function(){
var idValue=$(this).val();
var show=$('#show');
$.ajax({
url:'Server.aspx',
type:'POST',
data:{ id: idValue},
//调小超时时间会引起异常
timeout: 3000,
//请求成功后触发
success: function(data){ show.append('success invoke!'+ data+'<br/>');},
//请求失败遇到异常触发
error: function(xhr, errorInfo, ex){ show.append('error invoke!errorInfo:'+ errorInfo+'<br/>');},
//完成请求后触发。即在success或error触发后触发
complete: function(xhr, status){ show.append('complete invoke! status:'+ status+'<br/>');},
//发送请求前触发
beforeSend: function(xhr){
//可以设置自定义标头
xhr.setRequestHeader('Content-Type','application/xml;charset=utf-8');
show.append('beforeSend invoke!'+'<br/>');
},
//是否使用异步发送
async: true
})
});
})
</script>
</head>
<body>
<select id="selectNum">
<option value="0">--Select--</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<p id="show"></p>
</body>
</html>服务端主要代码:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
if(Request["id"]!= null&&!string.IsNullOrEmpty(Request["id"].ToString()))
{
//启用该句会引发ajax超时异常
// System.Threading.Thread.Sleep(3000);
Response.Write(GetData(Request["id"].ToString()));
}
}
}
protected string GetData(string id)
{
string str= string.Empty;
switch(id)
{
case"1":
str+="This is Number 1";
break;
case"2":
str+="This is Number 2";
break;
case"3":
str+="This is Number 3";
break;
default:
str+="Warning Other Number!";
break;
}
return str;
}运行程序,结果如图:
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
jquery插件uploadify使用详解
jquery基础知识点使用详解
jquery表格插件哪个
大多数前端er都把网页中的table标签替换为div,主要就是因为div要比table更容易添加CSS样式。但是我们在日常应用中仍然要用到table表格,其中最好的例子就是对照表。今天彬Go将向大家推荐15个jQuery表格插件让你对数据表格进行显示、排序、筛选和操控。如jQuery表格排序插件、jQuery表格拖拽插件、jQuery树形表格插件、设置颜色、点击、替换等效果。
1.DataTables-强大的jQuery表格插件
datatables-jquery-插件
DataTables是提供了大量特性的强大jQuery表格插件。例如:你可以自动轻松筛选、Ajax预读取数据、分页、列排序、高亮排序列、扩展插件支持、使用CSS或jQuery UI ThemeRoller定制主题和完整文档。
2.uiTableFilter-jQuery表格过滤插件
ui-table-filter-jquery-插件
uiTableFilter是一个用于表格行筛选的jQuery插件。插件作者提供了详细的例子来告诉大家如何将自己的表格和插件整合在一起并完成表格筛选。
3.Scrollable HTML Table-jQuery表格滚动插件
scrollable-html-table-jquery
Scrollable HTML Table jQuery插件可以让你的表格变得可以滚动控制。
买空间、服务器就上主机网(CNIDC.COM)虚拟主机评测+IDC导航=IDC123.COM。
4.Tablesorter-jQuery表格排序插件
tablesorter-jquery-插件
Tablesorter这个jQuery插件是用来将一个包含thead和tbody标签的标准HTML表格转变为无页面刷新的可排序表格。它不但支持多列排序,而且跨浏览器兼容并且能通过widget系统进行扩展。
5.Flexigrid-Web2.0 jQuery表格插件
flexigrid-jquery
Flexigrid是一个轻量级的Web2.0 jQuery插件。它包含很多非常Cool的特性,如主题定制、分页、工具栏、搜索、排序、ajax读取数据源、调整列宽高尺寸等。
6.HeatColor-jQuery表格颜色插件
heatcolor-jquery
HeatColor可以让你根据元素的值来为元素设置颜色。它的值的比对时根据预设的一个范围来进行比较,最后对他们自动进行颜色值的设置。
买空间、服务器就上主机网(CNIDC.COM)虚拟主机评测+IDC导航=IDC123.COM。
7.JQTreeTable-jQuery树形表格插件
jqtreetable-jquery
使用JQTreeTable插件你可以得到一个树形表格,如果用户的浏览器禁用了JavaScript,那么他们也能看到普通形式的表格,并不影响可访问性。
8.Ingrid-jQuery表格插件
ingrid-jquery-表格-插件
Ingrid是另一个数据表jQuery插件。它也有很多特性,比如列调整尺寸、排序、行列添加样式等。在作者网站提供了很棒的文档来告诉大家如何从头使用这个jQuery表格插件。
9.jQuery ColumnManager plugin
jquery-column-manager-jquery-表格插件
columnManager是可以控制任意表格列显示或隐藏的jQuery插件,而且它可以保存当前表格的状态至你下次访问。这个jQuery插件非常小巧轻量,仅3.6kb。
买空间、服务器就上主机网(CNIDC.COM)虚拟主机评测+IDC导航=IDC123.COM。
10.jQuery treeTable-jQuery树形表格插件
jquery-treetable-树形表格插件
jQuery treeTable是小型的JQTreeTable,它也能让你的table显示成树形结构.这个插件也可以在浏览器禁用JavaScript时保持文档整洁并让原始table可以使用.
11.CSV2Table-CSV格式读取表格插件
csv2table-jQuery表格插件
CSV2Table可以读取CSV文件,它从CSV文件中读取内容并创建成table表格.
12.Table Pagination-jQuery表格分页插件
table-pagination-jQuery表格插件
这个jQuery表格分页插件可以在表格下面创建分页元素,你还可以通过各种设置来定制分页。
买空间、服务器就上主机网(CNIDC.COM)虚拟主机评测+IDC导航=IDC123.COM。
13.jQuery TableRowCheckboxToggle
jquery-table-插件
这个jQuery表格插件可以让你再点击表格行的时候改变多选框状态并修改该行CSS样式。
14.Table Drag and Drop jQuery plugin-jQuery表格拖拽插件
这个简单的jQuery插件可以让用户使用拖拽行的方式重新排列表格各行,任意单独行可以设置为不可拖拽和/或不可放置。
15.uiTableEdit
uiTableEdit是由Greg Weber制作的很酷的jQuery表格编辑插件,它允许用户编辑表格内容。
如何快速入门jQuery Flexigrid 表格插件
Flexigrid是一个类似于Ext Gird,但基于jQuery开发的Grid。它具有的功能包括:可以调整列宽,合并列标题,分页,排序,显示/隐藏表格等。Flexigrid显示的数据能够通过Ajax获取或者从一个普通的表格转换。
本文重点介绍如何入门使用
工具/原料
Flexigrid插件包
eclipse/Myeclipse/Visual Studio
方法/步骤
1
百度搜索jQuery Flexigrid表格插件官网,进入之后如图
点击官网DownLoad进入Flexigrid的GitHub主页,下载插件包
解压刚刚下载插件包,查看目录:
README.md里面介绍了当前版本的一些特性和证书等信息
Css目录存放该插件需要的样式表,
Js目录存放插件的js文件
Demo即为作者提供的一些使用例子
使用:
(1)在插件包中自带了,几个例子,读者可以借鉴下:里面介绍了不同数据格式(如:JSON,XML)如何绑定到flexgrid表格中,具体参考源代码学习
(2)如何根据自定义需求向表格中插入数据及控件
下面给出一个简单例子:需求如下图
步骤:a、利用eclipse/Myeclipse或Visual Studio(具体用什么工具根据喜好,也可以只用文本编辑器)创建一个web工程
b、工程中添加jquery插件,Flexigrid插件
c、新建TestFlexigrid.html页面进行编辑,html代码为:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test Flexigrid</title>
<link rel="stylesheet" type="text/css" rel="external nofollow" href="js/flexigrid/css/flexigrid.css">
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript" src="js/flexigrid/js/flexigrid.js"></script>
</head>
<body onload="init();">
<table id="tb_account1">
</table>
</body>
</html>
js部分代码:
<script>
function init(){
$('#tb_account1').flexigrid({
'url': false
,'width': 500
,'dataType':'json'
,'colModel': [
{'display':'Name','name':'Name','width': 100,'sortable': false,'align':'left','dataAlign':'left'}
,{'display':'Age','name':'Age','width': 100,'sortable': false,'align':'left','dataAlign':'left'}
,{'display':'Option','name':'Option','width': 300,'sortable': false,'align':'left','dataAlign':'left'}
]
,'resizable': false
,'striped': true
,'singleSelect': true
,'showToggleBtn': false
,'minheight': 30
,'height': 150
,'preProcess': function(data){
return data;
}
,'doDbClick': function(){
}
});
var tbData1={'total': 1,'rows': []};
for(var i= 0; i< 4; i++){
tbData1['rows'].push({'cell': ["name","10","<button>Add</button><button>Modify</button>"]});
}
$('#tb_account1').flexAddData(tbData1);
}
</script>
最终界面显示效果如下;
以上仅简单介绍Flexigrid插件下载使用,在实际应用中会根据具体业务要求做调整,读者可自行深入研究
文章到此结束,如果本次分享的jquery文件下载插件和auto.js打包插件下载的问题解决了您的问题,那么我们由衷的感到高兴!