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(2012.08.06发)
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的请求做了如下处理:
var head = document.getElementsByTagName("head")[0]; var script = document.createElement("script");script.src = s.url;
通过以上js代码建立了一个script语句块, 并加入到head中:
head.appendChild(script);
当脚本加载完毕后, 再从head中删除.删除的js代码就省略了,有兴趣自己去研究Jquery.
我仅仅做了一个非跨域的测试,以后有时间再补一个跨域的.
实例:
客户端——
<%@ 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代码如下:
alert("getScript请求的javascript文件test.js 已载入!");
测试代码很简单,获得的效果一目了然,不再赘述了。