疑問和雜記
Js的兼容問題
DOC = document,
isStrict = DOC.compatMode == "CSS1Compat",
isOpera = check(/opera/),
isChrome = check(/chrome/),
isWebKit = check(/webkit/),
isSafari = !isChrome && check(/safari/),
isSafari2 = isSafari && check(/applewebkit\/4/), // unique to Safari 2
isSafari3 = isSafari && check(/version\/3/),
isSafari4 = isSafari && check(/version\/4/),
isIE = !isOpera && check(/msie/),
isIE7 = isIE && check(/msie 7/),
isIE8 = isIE && check(/msie 8/),
isIE6 = isIE && !isIE7 && !isIE8,
isGecko = !isWebKit && check(/gecko/),
isGecko2 = isGecko && check(/rv:1\.8/),
isGecko3 = isGecko && check(/rv:1\.9/),
isBorderBox = isIE && !isStrict,
isWindows = check(/windows|win32/),
isMac = check(/macintosh|mac os x/),
isAir = check(/adobeair/),
isLinux = check(/linux/),
isSecure = /^https/i.test(window.location.protocol);
// remove css image flicker
if(isIE6){
try{
DOC.execCommand("BackgroundImageCache", false, true);
}catch(e){}
}
W3cschool
http://www.w3school.com.cn/jquery
58同城不錯的網站
關鍵詞
VPN虛擬專用網絡(Virtual Private Network ,簡稱VPN)指的是在公用網絡上建立專用網絡的技術。其之所以稱爲虛擬網,主要是因爲整個VPN網絡的任意兩個節點之間的連接並沒有傳統專網所需的端到端的物理鏈路,而是架構在公用網絡服務商所提供的網絡平臺,如Internet、ATM(異步傳輸模式〉、Frame Relay (幀中繼)等之上的邏輯網絡,用戶數據在邏輯鏈路中傳輸。它涵蓋了跨共享網絡或公共網絡的封裝、加密和身份驗證鏈接的專用網絡的擴展。
JNDI(Java Naming and Directory Interface,Java命名和目錄接口)是一組在Java應用中訪問命名和目錄服務的API。命名服務將名稱和對象聯繫起來,使得我們可以用名稱訪問對象。目錄服務是一種命名服務,在這種服務裏,對象不但有名稱,還有屬性。JNDI在滿足了數據源配置的要求的基礎上,還進一步擴充了作用:所有與系統外部的資源的引用,都可以通過JNDI定義和引用。詳見http://blog.csdn.net/zhaosg198312/article/details/3979435
Prototype 是一個純粹的javascript代碼庫很好的支持Ajax。在JavaScript中,prototype對象是實現面向對象的一個重要機制。每個函數就是一個對象(Function),函數對象都有一個子對象 prototype對象,類是以函數的形式來定義的。prototype表示該函數的原型,也表示一個類的成員的集合。
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。
ibatIS是Clinton Begin開發,現在由APACHE基金會支持的用於加快JDBC編程的經過泛化的框架,是一個持久化框架。
DWR(Direct Web Remoting)是一個用於改善web頁面與Java類交互的遠程服務器端Ajax開源框架,可以幫助開發人員開發包含AJAX技術的網站。它可以允許在瀏覽器裏的代碼使用運行在WEB服務器上的JAVA函數,就像它就在瀏覽器裏一樣。
EL表達式非常簡單,在前面已經介紹過EL的運算符。所有的EL表達式都是以“${”開始“}”爲結尾的。如:“${applicationScope.user.userName}”。
OGNL是Object-Graph Navigation Language的縮寫,它是一種功能強大的表達式語言(Expression Language,簡稱爲EL),通過它簡單一致的表達式語法,可以存取對象的任意屬性,調用對象的方法,遍歷整個對象的結構圖,實現字段類型轉化等功能。它使用相同的表達式去存取對象的屬性。
利用ognl表達式取值(例如:取值堆棧中的username值)
<s:property value="username"/>
<s:propertyvalue=””> 注意: value裏的內容稱爲ognl表達式
User.xxx 只有傳入參數,纔會構造對象,或者直接在action中new也可以,但是User對象必需具有無參數的構造方法。
{}大括號 在OGNL中可以表示一個集合
POJO(Plain Old Java Objects)簡單的Java對象,實際就是普通JavaBeans,是爲了避免和EJB混淆所創造的簡稱。使用POJO名稱是爲了避免和EJB混淆起來, 而且簡稱比較直接. 其中有一些屬性及其getter setter方法的類,沒有業務邏輯,有時可以作爲VO(value -object)或dto(Data Transform Object)來使用.當然,如果你有一個簡單的運算屬性也是可以的,但不允許有業務方法,也不能攜帶有connection之類的方法。
Jquery
P209
插件工具p22
jQuery_API.mxp
目前有幾個比較流行的持久化框架,如:Hibernate、iBATIS以及最新的EJB 3版本。其中iBATIS框架並沒有實現真正的O/R Mapping框架,嚴格來講它只是對象和SQL之間的映射,適合於對已有項目的改造。而EJB 3框架是重量級開發框架,不適合輕量級開發。
事件
bind爲每個匹配元素的特定事件綁定事件處理函數。
live jQuery 給所有匹配的元素附加一個事件處理函數,即使這個元素是以後再添加進來的也有效。
這個方法是基本是的 .bind() 方法的一個變體。使用 .bind() 時,選擇器匹配的元素會附加一個事件處理函數,而以後再添加的元素則不會有。爲此需要再使用一次 .bind() 才行。
delegate指定的元素(屬於被選元素的子元素)添加一個或多個事件處理程序,並規定當這些事件發生時運行的函數。
hover一個模仿懸停事件(鼠標移動到一個對象上面及移出這個對象)的方法。這是一個自定義的方法,它爲頻繁使用的任務提供了一種“保持在其中”的狀態。
toggle用於綁定兩個或多個事件處理器函數,以響應被選元素的輪流的 click 事件。s如果元素是可見的,切換爲隱藏的;如果元素是隱藏的,切換爲可見的。
trigger在每一個匹配的元素上觸發某類事件。
blur當元素失去焦點時觸發 blur 事件。
dblclick 當雙擊元素時,會發生 dblclick 事件。
keypress 事件與 keydown 事件類似。當按鈕被按下時,會發生該事件。它發生在當前獲得焦點的元素上。不過,與 keydown 事件不同,每插入一個字符,就會發生 keypress 事件。註釋:如果在文檔元素上進行設置,則無論元素是否獲得焦點,該事件都會發生。
keyup當按鈕被鬆開時,發生 keyup 事件。它發生在當前獲得焦點的元素上。
註釋:如果在文檔元素上進行設置,則無論元素是否獲得焦點,該事件都會發生。
mouseenter 當鼠標指針穿過元素時,會發生 mouseenter 事件。該事件大多數時候會與mouseleave 事件一起使用。
與 mouseover 事件不同,只有在鼠標指針穿過被選元素時,纔會觸發 mouseenter 事件。如果鼠標指針穿過任何子元素,同樣會觸發 mouseover 事件。
mouseleave 當鼠標指針離開元素時,會發生 mouseleave 事件。該事件大多數時候會與mouseenter 事件一起使用。
與 mouseout 事件不同,只有在鼠標指針離開被選元素時,纔會觸發 mouseleave 事件。如果鼠標指針離開任何子元素,同樣會觸發 mouseout 事件。
mouseup 當在元素上放鬆鼠標按鈕時,會發生 mouseup 事件。
與 click 事件不同,mouseup 事件僅需要放鬆按鈕。當鼠標指針位於元素上方時,放鬆鼠標按鈕就會觸發該事件。
resize 當調整瀏覽器窗口的大小時,發生 resize 事件。
select當 textarea 或文本類型的 input 元素中的文本被選擇時,會發生 select 事件。
這個函數會調用執行綁定到select事件的所有函數,包括瀏覽器的默認行爲。可以通過在某個綁定的函數中返回false來防止觸發瀏覽器的默認行爲。
插件編寫p241
第五章很實用 用到時參考
剩下的以後再看
jquery.jqzoom.js類似於淘寶上面查看商品更大的圖片
iBATIS
相對於hibernate和apache ojb等“一站式”orm解決方案而言,ibatis是一種“半自動化”的orm實現。
sql maps:是整個ibatis database layer的核心價值所在。通過使用sql maps你可以顯著的節約數據庫操作的代碼量。sql maps使用一個簡單的xml文件來實現從javabean到sql statements的映射。跟其他的框架或者對象映射工具相比,sql maps最大的優勢是簡單。
iBATIS需要手寫sql語句,也可以生成一部分,Hibernate則基本上可以自動生成,偶爾會寫一些Hql。同樣的需求,iBATIS的工作量比Hibernate要大很多。類似的,如果涉及到數據庫字段的修改,Hibernate修改的地方很少,而iBATIS要把那些sql mapping的地方一一修改。
可維護性方面,iBatis 更好一些。因爲 iBatis 的 sql 都保存到單獨的文件中。而 Hibernate 在有些情況下可能會在 java 代碼中保sql/hql。
<properties>主配置文件之外提供一個名值對列如:
<properties resource=“db.properties” />
<settings> 添加各種屬性如:延遲加載,使用限定名等。
<transactionManager>用於指定使用什麼事物管理器等功能。
<typeAlias> 已經內置的類型別名定義
<typeHandler>:將數據從數據庫特定的數據類型轉換爲應用程序中的數據類型。
<sqlMap>
sqlmapconfig.xml
它是使用iBATIS的起點,負責把所有的SQL映射文件組合在一起。用於配置文件中告訴iBATIS如何連接數據庫,以及獲取哪些SQL映射文件。
sqlmap.xml
包含了我們將要運行的SQL語句。
<select> 查詢
<insert> 插入數據
<update> 更新數據庫中信息
<delete> 刪除
<procedure> 存儲過程
<statement>
<sql> select * from a where name=“aaa”
<include>
ExtJs
P64
Ext.onReady:這個函數用來判斷頁面已經準備好來執行Ext的內容,即用來判斷頁面是否加載完全;
Ext.Msg:用來產生一個有固定樣式的消息窗口;
configuration objects(配置對象):這個函數定義控件將如何展示和工作;
Ext.get:這個函數用來訪問和控制DOM中的而元素。
首先,我們建立一個使用本地數據的combo。爲了實現這個功能,我們需要建立一個data store(數據集合)。data store的種類有許多種,每一種可以被用在特定的情況下。但是對於這個例子,我們使用一個simple store:
21天學通java-web開發
<jsp:include>動作元素和<%@ include%>指令元素的區別如下。使用<%@ include%>指令元素是將所以的被包含文件包含進來之後,然後再進行編譯等處理,可以簡單的稱其爲先包含再處理。而使用<jsp:include>動作元素是先將所以的代碼處理完成之後,再將處理完成的代碼的結果包含進行,可以簡單的稱其爲先處理再包含。
<jsp:forward>動作元素用來轉移用戶的請求,使得用戶請求的頁面從一個頁面跳轉到另一個頁面。這種跳轉爲服務器端跳轉,所以用戶的地址欄不會發生任何的變化。
<jsp:plugin>、<jsp:params>和<jsp:fallback>三個動作元素,一般都是搭配起來使用。其中<jsp:plugin>動作元素用來在JSP中嵌入Java插件;<jsp:params>動作元素用來給Bean或者Applet傳遞參數;<jsp:fallback>動作元素用來指定當瀏覽器不支持或無法啓動Bean或者Applet時,在頁面上打印輸出的錯誤提示信息。
request對象不但可以用來設置和取得request範圍變量,還可以用來獲得客戶端請求參數、請求的來源、表頭、cookies等等。其中常用方法如下。
•獲得客戶端請求參數
•獲得所有的參數名稱
•獲得參數的所有參數值
•獲得封裝所有參數值的Map
response對象用來給客戶端傳送輸出信息,設置標頭等等。其常用方法如下。
•實現頁面跳轉
•實現頁面自動刷新
•實現頁面自動跳轉
out對象用來向網頁輸出信息。其常用方法如下。
•使用out對象進行頁面輸出
•使用out對象求得緩衝區使用大小
session對象用來表示用戶的會話狀況,一般用於保存用戶的各種信息,直到生命週期超時或者被自動釋放掉爲止。其常用方法如下。
•設置並獲得session生命週期
•獲得session的其他信息
其中name屬性使用設置實例化對象名,和<jsp:useBean>中的id屬性保持一致。property屬性用來指定JavaBean屬性名稱。param屬性用來指定接受參數名稱,value屬性用來指定屬性值。
JavaBean
<jsp:setProperty name="實例化對象名" property="*"/>
<jsp:setProperty name=“實例化對象名”property=“屬性名稱"/>
<jsp:setProperty name="實例化對象名" property="屬性名稱" param="參數名稱"/>
EL表達式
EL表達式非常簡單,在前面已經介紹過EL的運算符。所有的EL表達式都是以“${”開始“}”爲結尾的。
如:“${applicationScope.user.userName}”。
如果按照以前的JSP Scriptlets的寫法代碼如下。
User user= (User)application.getAttribute(“user”);
String username = user.getUserName();
(1)applicationScope對象,用來取得application範圍屬性值。
(2)sessionScope對象,用來取得session範圍屬性值。
(3)requestScope對象,用來取得request範圍屬性值。
(4)pageScope對象,用來取得page範圍屬性值。
JSTL標籤庫分爲五類,分別是JSTL核心標籤庫、數據庫標籤庫、I18N格式化標籤庫、XML標籤庫和JSTL函數標籤庫。
<c:out>用來顯示數據的內容,類似於<%=%>但是功能要更加強大。使用<c:out>輸出內容比使用Scriptlets代碼要更加簡單,方便頁面維護。
Filter同Servlet類似也具有生命週期。Filter從生成到銷燬必須進過如下幾個步驟。
(1)生成Filter,並通過調用其init()方法來進行初始化。
(2)過濾用戶請求,調用其doFilter()方法。
(3)調用destroy()方法進行銷燬,並通過垃圾收集器進行收集清理。
Servlet生命週期
(1) 初始化
(2) 服務
(3) 銷燬
Hibernate
Hibernate中對象有三種狀態,臨時對象(Transient Objects)、持久化對象(Persistent Objects)和脫管對象(Detached Objects)
(1)臨時狀態由Java中的new命令開闢內存空間的Java對象,也就是平時所熟悉的普通Java對象。如果沒有變量對它引用,它將被JVM收回。臨時對象在內存是孤立存在的,它的意義僅僅是攜帶信息的載體,不和數據庫中的數據有任何關聯。通過Session的save()和saveOrUpdate()方法可以把一個瞬時對象和數據庫相關聯,並把臨時對象攜帶的信息通過配置文件所做的映射插入到數據庫中,這個臨時對象就成爲持久化對象,並擁有和數據庫繼續相同的id字段。
(2)持久化狀態持久化對象在數據庫中有相應的記錄,並擁有一個持久化標識。如果使用delete()方法,持久化對象就變成臨時對象,並且刪除數據庫中相對應的記錄,這個對象和數據庫不再有任何關聯。當一個Session執行close()或者clear()或evict()之後,持久化對象就變爲脫管對象,這時對象的id雖然擁有數據庫的識別值,但已經不在Hibernate持久層的管理之下,它和臨時對象基本上是一樣的,只不過比臨時對象多了數據庫的標識id值。在沒有任何變量引用此對象的情況下,JVM可能將其回收。
a) transient:內存中一個對象,沒ID,緩存中也沒有
b) persistent:內存中有,緩存中有,數據庫有ID
c) detached:內存有,緩存沒有,數據庫有,ID
1.業務邏輯組件接口
2.業務邏輯組件實現類
3.業務邏輯組件工廠類
Spring
注入的三種方式
1. 通過Set方法注入依賴。
2. 引用其他的Bean。
3. 使用構造函數注入依賴。
自動裝配包含如下四種類型。
•byName:在IoC容器中尋找與Bean中屬性名相同的id對應的Bean,如果找不到相符合的Bean,則該屬性沒有被裝配上。
•byType:在IoC容器中尋找與Bean中屬性相同類型的Bean,如果找不到相符合的Bean,則該屬性沒有被裝配上。如果找到多個相符合的Bean,則會拋出異常。
•constructor:在IoC容器中尋找與Bean中構造函數參數一致的一個或多個Bean。如果存在不確定的Bean,則會拋出異常。
•autodetect:自動模式,首先嚐試使用constructor來自動裝配,然後使用byType方式。
Struts
Strut標籤庫:<%@ taglib prefix="s" uri="/struts-tags" %>
$ #% 的區別
a) $ 用於i18n和Struts配置文件
b) # 取得ActionContext的值
c) % 將原本的文本屬性解析爲ognl,對於本來就是ognl的屬性不起作用
i. 參考<s:property>和<s:include>
Action配置詳見馬士兵struts筆記
Ajax
AJAX 指的是異步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
爲了應對所有的現代瀏覽器,包括 IE5 和 IE6,請檢查瀏覽器是否支持 XMLHttpRequest 對象。如果支持,則創建 XMLHttpRequest 對象。如果不支持,則創建 ActiveXObject :
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
如需將請求發送到服務器,我們使用 XMLHttpRequest 對象的 open() 和 send() 方法:
xmlhttp.open("GET","test1.txt",true);
xmlhttp.send();
當使用 async=true 時,請規定在響應處於 onreadystatechange 事件中的就緒狀態時執行的函數
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","test1.txt",true);
xmlhttp.send();
當您使用 async=false 時,請不要編寫 onreadystatechange 函數 - 把代碼放到 send() 語句後面即可
xmlhttp.open("GET","test1.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
如需獲得來自服務器的響應,請使用 XMLHttpRequest 對象的 responseText 或 responseXML 屬性。
屬性 |
描述 |
responseText |
獲得字符串形式的響應數據。 |
responseXML |
獲得 XML 形式的響應數據。 |
下面是 XMLHttpRequest 對象的三個重要的屬性:
屬性 |
描述 |
onreadystatechange |
存儲函數(或函數名),每當 readyState 屬性改變時,就會調用該函數。 |
readyState |
存有 XMLHttpRequest 的狀態。從 0 到 4 發生變化。 · 0: 請求未初始化 · 1: 服務器連接已建立 · 2: 請求已接收 · 3: 請求處理中 · 4: 請求已完成,且響應已就緒 |
status |
200: "OK" 404: 未找到頁面 |
瘋狂ajax講義
瘋狂ajax講義(很好的書包括jquery extjs ajax)
Jquery
jqueryUI對話框組件可以調用dialog方法彈出對話框
Html()/text()/val()
document.getElementsByTagName獲取標籤名
$() 方法是在DOM中使用過於頻繁的 document.getElementById() 方法的一個便利的簡寫
ExtJs
1、元素選擇符
*:任意元素
E:匹配所有標籤爲E的元素
E F:匹配E元素的所有後代元素中標籤爲F的元素
E>F:匹配E的所有子元素(不包括孫子等後代元素)中標籤爲F的元素
E+F:匹配緊跟着E元素的下一個兄弟元素且標籤爲F的元素
E~F:匹配E標籤後面所有兄弟標籤爲F的元素
2、屬性選擇符
3、Class選擇器
4、僞類選擇符
5、CSS值選擇符
Ext.Array Array擴展工具 Ext.Array.sun()
Ext.Date Date擴展工具 Ext.Date.format()
Number String等
Ext.extend和Ext.define作用相同表示自定義類,多用Ext.define。Ext.create創建對象
Ext.DomHelper是一個工具類,它允許開發者通過DOM或HTML字符串來創建HTML元素和HTML模板。
xtype來標識UI組件類型
inputType輸入類型
fieldLabel標籤
handler指定事件處理函數
tooltip提示
renderTo:Ext.getBody()是用來指明控件要渲染的節點的
@WebServlet(urlPatterns=”/pro”) Extjs中表明的url地址在servlet中引用。
ExtJs的數據中心(在實際項目中運用比較多)p332
Ext.data.Model Ext.data.Field Ext.data.Store
Ext.data.proxy.Proxy使用proxy加載遠程數據
加載遠程數據
proxy:{
type:'ajax',
url:'getAllBooks',
reader:{
type:'json',
root:'data'
},
}
例子:
<html>
<head>
<title>ExtJsTest</title>
<link rel="stylesheet" type="text/css" href="css/ext-all.css" />
<script src="js/ext-all.js"></script>
<script>
Ext.onReady(function(){
Ext.define('Book',{
extend:'Ext.data.Model',
feild:[
{name:'name',type:'string'},
{name:'author',type:'string'},
{name:'price',type:'float'},
{name:'publishDate',type:'date'}
]});
var bookStore=Ext.create('Ext.data.Store',{
model:'Book',
data:[
{"id":1,name:"瘋狂ajax講義1",author:"李剛1",price:1001,publishDate:'2012-2-2'},
{"id":2,name:"瘋狂ajax講義2",author:"李剛2",price:1002,publishDate:'2012-2-22'},
{"id":31,name:"瘋狂ajax講義3",author:"李剛3",price:1003,publishDate:'2012-2-3'}
]});
Ext.create('Ext.grid.Panel',{
title:'察看圖書',
width:550,
renderTo:Ext.getBody(),
columns:[
{text:'書名',dataIndex:'name',flex:1},
{text:'作者',dataIndex:'author',flex:1},
{text:'價格',dataIndex:'price',flex:1},
{text:'出版時間',dataIndex:'publishDate',xtype:'datecolumn',format:'y年m月d日',flex:1},
],
store:bookStore
});
});
/*加載遠程數據
proxy:{
type:'ajax',
url:'getAllBooks',
reader:{
type:'json',
root:'data'
},
},
*/
/*定義分頁工具條
bbar:{
xtype:'pagingtoolbar',
store:bookStore,
displayInfo:true
}
*/
</script>
</head>
<body>
</body>
</html>
Ext.data.reader.Reader讀取數據
分頁工具條
bbar:{
xtype:'pagingtoolbar',
store:bookStore,
displayInfo:true
}
UI容器
Ext.container.Container
Ext.window.Window
Ext.panel.Panel
Ext.grid.Panel生成表格p338
Ext.grid.column.Action操作表格數據
使用Ext.tree.Panel生成樹
Ext.data.TreeStore提供數據支持
Root:{
Children:[
{text:””,children:[
{text:””,leaf:true}]
}]
}
Prototype
是一個純粹的javascript代碼庫很好的支持Ajax。
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。
prototype.js開發者手冊
http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html
1、Prototype的工具函數
使用$()方法
$() 方法是在DOM中使用過於頻繁的 document.getElementById() 方法的一個便利的簡寫,就像這個DOM方法一樣,這個方法返回參數傳入的id的那個元素。
使用$$()函數
$$()和$()函數的功能相同,只是該函數是一個或多個CSS選擇器。
使用$F()函數
$F()函數是另一個大收歡迎的“快捷鍵”,它能用於返回任何表單輸入控件的值,比如text box,drop-down list。這個方法也能用元素id或元素本身做爲參數。
使用$A()函數
$A()函數能把它接收到的單個的參數轉換成一個Array對象。
使用$w()函數
$w()函數用於將字符串以空格作爲分隔符,將字符串分割成字符串數組。
使用 $H() 函數
$H()函數把一些對象轉換成一個可枚舉的和聯合數組類似的Hash對象。
使用$R()函數
$R()是new ObjectRange(lowBound,upperBound,excludeBounds)的縮寫。
跳到ObjectRange 類文檔可以看到一個關於此類的完整描述. 此時,我們還是先來看一個例子以展示這個縮寫能代替哪些方法吧。其它相關的一些知識可以在Enumerable 對象文檔中找到。
使用Try.these()函數
Try.these() 方法使得實現當你想調用不同的方法直到其中的一個成功正常的這種需求變得非常容易, 他把一系列的方法作爲參數並且按順序的一個一個的執行這些方法直到其中的一個成功執行,返回成功執行的那個方法的返回值。
2、Prototype的自定義對象和類
使用Element對象
使用Element.Methods
和Element裏包含的方法大致相似只是定義方法混入DOM Element
使用Enumerable
提供大量操作數組、集合和枚舉的方法
使用ObjectRange
使用Form.Element操作表單控件
使用Form表單操作
和Form.Element相似,區別是Form.Element操作指定的表單控件二Form操作指定的表單
使用Hash對象
使用Event
使用Template
使用Class
兩個常用監聽器
Form.Observer
Form.Element.Observer
3、Prototype對ajax的支持
使用Ajax.Request類
如果你不使用任何的幫助程序包,你很可能編寫了整個大量的代碼來創建XMLHttpRequest對象並且異步的跟蹤它的進程, 然後解析出響應 然後處理它。當你不需要支持多於一種類型的瀏覽器時你會感到非常的幸運。
使用Ajax.Responders對象
註冊全局ajax事件處理器register
刪除全局ajax事件處理器unregister
使用Ajax對象
使用Ajax.Updater類
如果你的服務器的另一端返回的信息已經是HTML了,那麼使用這個程序包中 Ajax.Updater 類將使你的生活變得更加得容易。用它你只需提供哪一個元素需要被AJAX請求返回的HTML填充就可以了,例子比我寫說明的更清楚。
DWR
DWR(Direct Web Remoting)是一個用於改善web頁面與Java類交互的遠程服務器端Ajax開源框架,可以幫助開發人員開發包含AJAX技術的網站。它可以允許在瀏覽器裏的代碼使用運行在WEB服務器上的JAVA函數,就像它就在瀏覽器裏一樣。