濟南網站建設知名品牌,首屈一指的高端品牌濟南網站建設中國旗艦級濟南網站建設服務商,重視用戶體驗,創意,設計,開發。142◆第9章客戶端數據的使用Download htm15sql]javascripts/notesjsinsertNote = function(title, note){db.transaction(function(tx){ tx.executeSql("INSERT INTO notes (tit7e, note) VALUES (?, ?)" [title.val(), note.val()] , function(tx, result){ var id = result.insertld ; alert('Record r + id+ ' saved! '); title.attr("data_/d", result.insertld ); addToNotesList(id, title.val (》 ; $("#de7ete_button").show() ;);));)},function() { alert(rThe note cou7d not be saved. ')} insertNote0方法將記錄插入到數據庫中,使用結果集的insertid屬性獲取剛插入記錄的ID。然后將其作為一種自定義數據屬性應用到表單的title域,觸發addToNotesList()窮法將留言添加到頁面左側的列表中。接下來,我們需要處理更新事件。updateNote0方法同其他方法類似:Download htm15sql/javascripts/notes.jsupdateNote = function(title, note){ var id = title.attr("data-/d") ;db.transaction(function(tx){ tx.executeSql("UPDATE notes set tit7e = ?, note = ? where id = ? [title.val(), note.val(), id], function(tx, result){ alert('Record r + id + , updated!'); $( "#notes>71[data-/d=" + id + "J ").html(title.val(》 ; }, function () { alert('The note was not updated!'); } ); });};update語句成功執行后,我們通過data-id域中的剛更新過的ID值更新列表中的留言標題。刪除記錄幾乎同更新是一樣的。我們需要如下所示的刪除事件處理程序:Download htm15sql/javascripts/notes.js9.2實例21:在客戶端關系數據庫中保存數據●143$( "#de7ete_button") .click(function(event) { event.preventDefault() ; var title = $("#t/t7e"); deleteNote(title) ;}); 接著,編寫刪除方法。此方法不僅要從數據庫中刪除記錄,而且還要在前端的側邊欄列表中也一并刪除它:Download htm15sql/javascripts/notes.jsdeleteNote = function(title){ var id = title.attr("data-/d") ; db.transaction(function(tx) { tx.executeSql("DELETE from notes where id = 7", [id] function(tx, result){ alert('Record r + id + $( "#notes>7iEdata-/d="},function() { ' de7eted! ') ;al ert( 'The note was not de7eted! ') ; ) ); )); ); 現在剩下的工作只是清空表單了。這樣做是為了避免在創建新的記錄時意外地影響到現有的記錄。9.2.8包裝 我們的留言系統基本完成了,接下來只需要激活New按鈕即可。按下該按鈕會清空表單,這樣用戶便可以在編輯完一條留言后,創建新的留言。與先前的模式一樣,先從iQuery函數中New按鈕的事件處理程序開始:Download htm15sql/javascripts/notes.js$( "#new_button") .click(function(event) { event.preventDefault() ; newNote() ;});//end:newbutton newNote ()});144◆第9章客戶端數據的使用 接著,清空“title”域的data-id屬性,從表單中移除對應值。在此,我們還會隱藏頁面上的Delete按鈕: Download htm15sql/javoscripts/notesjs newNote=function(){ $("#de7ete_button").hide0; var title=$("孝t彳t7e"); title.removeAttr( "data-/d¨); tjtle.val(""); var note=$("#note¨); note.val(¨¨); ) 我們應該在iQuery函數內部調用newForm方法,這樣當頁面加載的時候表單就可用了。這樣的話,Delete按鈕也就隱藏了。 所有的操作都完成了。我們的應用在iPhone、Android設備和安裝有Chrome、Safari和Opera的計算機中運行。不過在Firefox中有一定幾率可成功,而在Internet Explorer中卻得不到支持。9.2.9回退 同其他的解決方案不同,對于SQL存儲來說,還沒有比較好的庫可用。因此無法為InternetExlporer用戶提供原生支持。但是,如果你認為這種座用是有用的,那么可以說服用戶使用GoogleChrome來訪問這個特殊的應用,因為Google Chrome在各種平臺上都能使用。實際項目中這種方式并不少見,特別是對于需要同時在手機上訪問的內部系統來說,要求更換瀏覽器是很正常的。 另一種可選方案是使用Google Chrome Frame插件。。在HTML頁面中的head標簽下添加:Download htm15sql/index.html<meta http-equiv="X-UA-Compatible" content="chrome=l">這個代碼片段會被Google Chrome Frame插件讀取,并為頁面啟用此功能。 如果要檢測插件的存在性,然后在它不存在的情況下提醒用戶安裝,那么可以將下面的代碼插入到body結束標簽的上方:Download htm15sql/index.himl<script type="text/javascript"src= "http://a jax.goog7eapis.com/a jax/7 ibs/chrome- frame/l/CFInsta7 7 .min. js "></sc ript>①參見 http://code.google.com/chrome/chromeframe/。
夢之網科技 http://www.aecov.cn