,主要是给数据存储是XML格式时使用。在DataStore.cs文件中StorageLocation方法会涉及到。
BlogEngine.HardMinify:对于Javascript脚本指定强行压缩(去除一些不必要的字符)的文件名称。我们知道BlogEngine.Net中对于Javascript请求都是通过JavaScriptHandler进行的,JavaScriptHandler有一个HardMinify来判断是否已经指定强行压缩。JavaScriptHandler中会涉及到这部分的引用。注意对WebResource.axd的请求在BlogBasePage中替换成对于js.axd的请求,之后JavaScriptHandler的处理是使用RetrieveRemoteScript来输出脚本的。
Ajax的运用
BlogEngine.Net的很多部分使用原生的Ajax完成。例如评论的打分,widget的管理等部分。我们在讲述BlogBasePage时提到的AddLocalizationKeys实际上就是初始化页面脚本的一些变量,之后使用AddJavaScriptInclude(Utils.RelativeWebRoot + "blog.js")引入blog.js,如果是管理员(Widget可被管理)又使用AddJavaScriptInclude(Utils.RelativeWebRoot + "admin/widget.js")引入widget.js,使用AddStylesheetInclude(Utils.RelativeWebRoot + "admin/widget.css")引入widget样式,注意先后顺序,因为widget.js需要使用核心的blog.js。blog.js中这段代码就是Ajax调用的核心:
Ajax核心
1/// <summary> 2/// Creates a client callback back to the requesting page 3/// and calls the callback method with the response as parameter. 4/// </summary> 5function CreateCallback(url, callback) 6{ 7 var http = GetHttpObject(); 8 http.open("GET", url, true); 9 10 http.onreadystatechange = function() 11 { 12 if (http.readyState == 4) 13 { 14 if (http.responseText.length > 0 && callback != null) 15 callback(http.responseText); 16 } 17 }; 18 19 http.send(null); 20} 21 22/// <summary> 23/// Creates a XmlHttpRequest object. 24/// </summary> 25function GetHttpObject() 26{ 27 if (typeof XMLHttpRequest != ''undefined'') 28 return new XMLHttpRequest(); 29 30 try 31 { 32 return new ActiveXObject("Msxml2.XMLHTTP"); 33 } 34 catch (e) 35 { 36 try 37 { 38 return new ActiveXObject("Microsoft.XMLHTTP"); 39 } 40 catch (e) {} 41 } 42 43 return false; 44}1/// <summary> 2/// Creates a client callback back to the requesting page 3/// and calls the callback method with the response as parameter. 4/// </summary> 5function CreateCallback(url, callback) 6{ 7 var http = GetHttpObject(); 8 http.open("GET", url, true); 9 10 http.onreadystatechange = function() 11 { 12 if (http.readyState == 4) 13 { 14 if (http.responseText.length > 0 && callback != null) 15 callback(http.responseText); 16 } 17 }; 18 19 http.send(null); 20} 21 22/// <summary> 23/// Creates a XmlHttpRequest object. 24/// </summary> 25function GetHttpObject() 26{ 27 if (typeof XMLHttpRequest != ''undefined'') 28 return new XMLHttpRequest(); 29 30 try 31 { 32 return new ActiveXObject("Msxml2.XMLHTTP"); 33 } 34 catch (e) 35 { 36 try 37 { 38 return new ActiveXObject("Microsoft.XMLHTTP"); 39 } 40 |