Asp.Net+Jquery.Ajax详解5-$.getScript
目录(已经更新的文章会有连接,从7月25日开始,每2到3天更新一篇):
Asp.Net+Jquery.Ajax详解1-开篇(2012.07.25发)
Asp.Net+Jquery.Ajax详解2-$.Load(2012.07.26发)
Asp.Net+Jquery.Ajax详解3-$.get和$.post(2012.07.30发)
Asp.Net+Jquery.Ajax详解4-$.getJSON(2012.07.31发)
Asp.Net+Jquery.Ajax详解5-$.getScript(2012.08.04发)
Asp.Net+Jquery.Ajax详解6-$.ajaxSetup
Asp.Net+Jquery.Ajax详解7-全局Ajax事件
Asp.Net+Jquery.Ajax详解8-核心$.ajax
Asp.Net+Jquery.Ajax详解9-serialize和serializeArray
Asp.Net+Jquery.Ajax详解10-JSON和XML+写在最后
jQuery.getScript(url, [callback])
通过 HTTP GET 请求载入并执行一个 JavaScript 文件。
url:待载入 JS 文件地址。
callback:成功载入后回调函数。
此函数的jQuery内部实现, 仍然使用get函数, getScript将传入值为"script"的type参数, 最后在Ajax函数中对type为script的请求做了如下处理:
[javascript]
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = s.url;
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = s.url;
通过以上js代码建立了一个script语句块, 并加入到head中:
head.appendChild(script);
当脚本加载完毕后, 再从head中删除.删除的js代码就省略了,有兴趣自己去研究Jquery.
我仅仅做了一个非跨域的测试,以后有时间再补一个跨域的.
实例:
客户端——
[javascript]
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JqueryAjaxGetScript.aspx.cs" Inherits="JqueryAjaxTest.JqueryAjaxGetScript" %>
<!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/1999/xhtml">
<head runat="server">
<title>jquery ajax test</title>
<script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
//为按钮绑定事件
$("#TestGetScript").bind("click", GetScriptTest);
$("#Button1").bind("click", GetScriptTest);
});
//测试getScript
function GetScriptTest(event) {
$.getScript("Scripts/test.js", function (responseText, textStatus) {
$("#result").html("请求的js文件的内容为:" + responseText + "<br/>" + "请求状态:" + textStatus + "<br/>" + "请求js的url:" + this.url);
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="TestGetScript" type="button" value="测试jquery.getScript" />
<div id="result">
</div>
</div>
</form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JqueryAjaxGetScript.aspx.cs" Inherits="JqueryAjaxTest.JqueryAjaxGetScript" %>
<!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/1999/xhtml">
<head runat="server">
<title>jquery ajax test</title>
<script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
//为按钮绑定事件
$("#TestGetScript").bind("click", GetScriptTest);
$("#Button1").bind("click", GetScriptTest);
});
//测试getScript
function GetScriptTest(event) {
$.getScript("Scripts/test.js", function (responseText, textStatus) {
$("#result").html("请求的js文件的内容为:" + responseText + "<br/>" + "请求状态:" + textStatus + "<br/>" + "请求js的url:" + this.url);
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="TestGetScript" type="button" value="测试jquery.getScript" />
<div id="result">
</div>
</div>
</form>
</body>
</html>
客户端请求的test.js中的javascript代码如下:
[javascript] www.zzzyk.com
alert("getScript请求的javascript文件test.js 已载入!");
alert("getScript请求的javascript文件test.js 已载入!");
测试代码很简单,获得的效果一目了然,不再赘述了。
作者:shan9liang
补充:Web开发 , ASP.Net ,