婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 完成了AJAX樹附原理分析

完成了AJAX樹附原理分析

熱門標簽:澳大利亞城市地圖標注 遼寧銀行智能外呼系統 電銷機器人違法了嗎 辰溪地圖標注 許昌智能電銷機器人公司 海南銀行智能外呼系統商家 姜堰電銷機器人 遼寧正規電銷機器人 上海浦東騰訊地圖標注位置
首先要糾正一個上篇博文《Rails中的Ajax初體驗》中的一個錯誤:上篇博文中,我說“要在Rails中使用Ajax,局部模板是必須的”,經實踐檢驗,是錯誤的,特此更正。實踐是檢驗真理的唯一標準,此言不虛。經過項目中真正通過RJS實現AJAX樹,可知,通過使用insert_html、replace_html等輔助方法,可直接操作頁面上的元素,無須使用局部模板。
整個的實現過程還是有點曲折:

之前使用的生成樹結構的頁面,是利用從服務器獲取的所有數據,通過一系列javascript腳本函數,一次性地生成整個樹結構目錄。這種方式對付系統的功能菜單還游刃有余,但是要生成包含上千條數據的樹結構時,客戶端的瀏覽器需要十幾秒鐘才能把整個樹結構建立起來、顯示在頁面上,這對于用戶來說是不可忍受的——其實對于我們開發者來說,也是不可忍受的。那么一個可行的辦法就是,利用AJAX技術,先顯示樹結構的第一級節點,當點擊某個節點時,再從服務器獲取該節點的子節點,顯示出來。這樣,每次與服務器交互的數據量不大,加快了頁面響應。

一開始我打算利用RAILS中的AJAX機制,配合使用之前那個版本中的javascript函數。但是那個版本的思路,是基于從服務器獲取的樹結構數據,通過循環、遞歸,在服務器端生成好要在客戶端頁面執行的一系列javascript函數調用,以生成樹結構。至此,還算是比較符合AJAX的思路,但是下一步就大相徑庭了:舊版本的是將生成的那一大串javascript函數調用的字符串,一次性地完全返回給客戶端頁面,客戶端頁面在加載前,已經獲得了這一大串字符串,只需簡單地把它加載,就一次性的執行它、生成樹結構了。這種方式,等于沒有給AJAX留下插足的任何機會。

此路不通,于是我轉而尋找網上別人做的AJAX樹,試圖將其移植過來,為我所用。之前就找到過一個.NET版的,用C#寫的,還沒仔細看過。于是打開VS2005,建好了ASPX工程,研究了一下這個.NET版的AJAX樹。這個版本自帶了一個ACCESS數據庫,里面有一些演示數據。把IIS架起來后,運行得還真挺順暢。這個AJAX樹的功能做得還挺強,可以實現在頁面上對樹節點的添加、刪除、編輯、拖拽移動操作。代碼也比較清晰:一個htm頁面和一個aspx頁面,其中aspx頁面中定義了一些服務器端函數,組織出相應的要返回給htm頁面的html代碼段。然而,要把這個移植過來也不容易,首先是對其生成html代碼段的思路不熟悉,不好控制,另外一點,它是通過response.write返回所生成的html代碼段,與RJS中直接指定頁面元素進行控制的思路又不一樣。

也是由于通過對以上兩種方式的探索,使得我對做AJAX樹的思路更加清晰的原因吧,我最終決定還是自己動手,完全自己做一個RAILS下的出來吧。盡管最終從核心內容到細節控制,總算是把這棵樹給搗騰出來了,但中間遇到幾個問題,有的不知道是否RAILS本身就不支持,還有的明明書上、別人都行得通,但我這就是不行。不知個中緣由,列在這里,若有人能夠解答,還望不吝賜教!謝過先!

問題一:用RJS的insert_html輔助方法,無法在一個table最后添加一行(即tr>),即使寫一個簡單的測試程序也不行。最后,我是用div和span做容器,向其中添加table來解決的,即樹的每個節點都用一個只有一行的table來裝載。

問題二:在使用RJS時,在“render :update”代碼段,只能是單純的一句調用輔助方法的語句,其它的,無論是加點if判斷,還是再使用另外一個輔助方法,代碼全都失效。本想先用insert_html添加元素,再用call調用javascript函數之類,完全行不通,最終是預先在要插入元素的地方放置一個空的容器,然后換用replace_html,將容器中的空內容“換”成返回的html代碼段,也達到了添加頁面元素的效果。

問題三:這個是最為奇怪的問題了。當我組合待返回的html元素的代碼時,由于該元素還要繼續帶有AJAX鏈接,故本想用“#{}”將Ruby代碼嵌入——這種方法理論上講是可行的,可我在實際操作中,記得好像只成功了一兩次,基本上都實現不了AJAX效果(實際上是沒效果)。無奈之下,我根據頁面初始顯示的第一級樹節點,查看了頁面代碼,看到了生成的AJAX代碼,再依照它的樣子,替換掉我本來想用Ruby代碼的部分——也就是說,我最終不是用嵌入的Ruby代碼,而是直接寫出將要生成的AJAX代碼——這樣的代碼是多么的丑陋啊!

不過,整個過程下來,還是略有一些可以總結的東西:

總結一:由于樹節點中要顯示的文本中,有的會有加號“+”,而恰巧該文本還是要向服務器發送的參數,這種情況下,在組合要返回的html代碼段時,加號會被當作連接字符串的操作,那么在必要的地方,則把加號替換成其它不會被誤解的符號,如下劃線“_”,而在傳給數據庫做查詢用時,再替換回來。Ruby中將字符串中的模式替換成指定內容的函數是gsub,如:str.gsub("+","_"),就是把str中的加號替換成下劃線。該函數的第一個參數也可以是正則表達式。

總結二:對于頁面上要顯示的每一個樹節點,都用一個只有一行的table來控制,這樣做有一個好處,就是每個節點都可以獨立地控制顯示位置,而不用考慮colspan屬性,只需在前面添加指定個數的td即可,具體做法見“總結三”。

總結三(控制樹節點的顯示級別位置的方法):點擊樹節點,向服務器發送該節點的ID,從而獲取該節點的子節點。與此同時,還要返回一個本節點的級別(頁面初始顯示的第一級節點的級別為0)。在生成子節點的html代碼段時,得到父節點的級別,加上1,即為子節點的級別。根據級別數做循環,向包含子節點內容的table中添加相應個數的td。在所添加的td中,填入若干空格(nbsp;)(數量自定,一般2~3個為宜),但是空格只有與td配合使用效果才好,否則容易錯位。或者事先用windows的畫圖工具做一個白色小方塊的bmp文件(方塊大小根據已有的在樹的節點前面表示展開、收攏節點的圖片設定),然后在td中嵌入這個小方塊圖片也行。如某個二級節點,其html代碼段為:table>tr>td>nbsp;nbsp;/td>td>二級節點/td>/tr>/table>。
您可能感興趣的文章:
  • ajax 技術和原理分析
  • 談談Ajax原理實現過程
  • Ajax的內部實現機制、原理與實踐小結
  • Ajax工作原理深入理解
  • jquery的ajax跨域請求原理和示例
  • ajax 文件上傳應用簡單實現
  • Ajax方式提交帶文件上傳的表單及隱藏iframe應用
  • Ajax+asp應用實例 注冊模塊,表單提交
  • AngularJS入門教程之與服務器(Ajax)交互操作示例【附完整demo源碼下載】
  • Ajax PHP簡單入門教程代碼
  • Ajax原理與應用案例快速入門教程

標簽:西藏 威海 深圳 銅川 伊春 晉城 撫州 崇左

巨人網絡通訊聲明:本文標題《完成了AJAX樹附原理分析》,本文關鍵詞  完,成了,AJAX,樹附,原理,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《完成了AJAX樹附原理分析》相關的同類信息!
  • 本頁收集關于完成了AJAX樹附原理分析的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久久久97国产精华液好用吗| 欧美成人精品福利| 美日韩一级片在线观看| 亚洲综合自拍偷拍| 日韩二区三区四区| 国产精品一区在线| 91一区二区在线观看| 欧美日韩在线精品一区二区三区激情 | 东方aⅴ免费观看久久av| 久久69国产一区二区蜜臀| 成人一区二区三区| 91在线视频网址| 欧美日韩日本视频| 国产人成一区二区三区影院| 亚洲精品乱码久久久久| 久久99日本精品| 欧美日韩中文字幕一区| 日韩精品一区二区三区视频播放| 欧美激情在线观看视频免费| 五月激情综合婷婷| 99精品视频一区| 欧美日韩亚洲综合在线| 中文字幕国产一区二区| 美腿丝袜亚洲一区| 99视频精品在线| 久久综合久久鬼色中文字| 一区二区三区加勒比av| 成人激情开心网| 91麻豆精品91久久久久久清纯| 日韩av网站在线观看| 91首页免费视频| 日本一区二区电影| 国产酒店精品激情| 日韩欧美成人一区| 日欧美一区二区| 色欧美片视频在线观看在线视频| 欧美一卡二卡在线观看| 一区二区三区免费在线观看| 99综合电影在线视频| 国产色婷婷亚洲99精品小说| 日本aⅴ亚洲精品中文乱码| 99国产精品久| 国产精品久久久久久一区二区三区| 精品一区二区三区视频在线观看| 在线观看国产91| 亚洲精品久久7777| 91女厕偷拍女厕偷拍高清| 26uuu精品一区二区在线观看| 中文字幕一区二区在线播放| 国产伦精品一区二区三区免费| 欧美日韩国产成人在线91| 中文字幕中文字幕一区二区| 国精产品一区一区三区mba桃花 | 欧美一级黄色片| 亚洲国产日韩a在线播放性色| 国产一区二区日韩精品| 欧美成人三级在线| 午夜不卡av在线| 成人精品视频一区二区三区| 国产精品日韩成人| 另类小说色综合网站| 精品处破学生在线二十三| 免费成人av资源网| 日韩欧美国产精品一区| 精品一区二区三区的国产在线播放| 欧美日韩不卡一区| 久久精品国产**网站演员| 久久午夜国产精品| 国产成人在线免费观看| 亚洲欧美一区二区在线观看| 99riav一区二区三区| 一区二区高清视频在线观看| 欧美日韩国产成人在线免费| 美女久久久精品| 亚洲国产精品精华液ab| 在线欧美小视频| 麻豆精品在线看| 中文字幕av不卡| 色综合久久精品| 奇米综合一区二区三区精品视频 | 精品福利一区二区三区免费视频| 久久国产成人午夜av影院| 精品国产一区二区国模嫣然| 国产成人av资源| 一区二区国产视频| 精品捆绑美女sm三区| 国产一区在线精品| 国产欧美日产一区| 欧美午夜在线一二页| 狠狠久久亚洲欧美| 亚洲自拍偷拍图区| 日韩一区二区三区视频在线观看| 国产精品99久久不卡二区| 亚洲一区二区三区在线看| 正在播放亚洲一区| 91在线一区二区三区| 激情亚洲综合在线| 日本一区二区三区四区在线视频| 91久久精品一区二区三区| 国产精品少妇自拍| 欧美日韩国产成人在线免费| 成人av在线看| 美女一区二区三区| 亚洲五码中文字幕| 国产欧美日韩三级| 不卡av电影在线播放| 精品在线一区二区三区| 夜夜精品视频一区二区| 久久精品一区四区| 欧美性色欧美a在线播放| 精彩视频一区二区三区| 亚洲欧洲日韩女同| 欧美日韩大陆在线| 国产精品麻豆欧美日韩ww| 国产精品18久久久久久久久| 精品国产免费一区二区三区四区| 国产综合色在线| 亚洲人成人一区二区在线观看| 精品少妇一区二区三区在线播放| 欧美视频三区在线播放| 成人app在线| 欧美激情中文字幕一区二区| 日韩小视频在线观看专区| 一本大道av伊人久久综合| 丁香六月久久综合狠狠色| 国产精品久久久久久久浪潮网站| 26uuu国产一区二区三区| 欧美一级片免费看| 欧美一区二区网站| 91精品国产综合久久婷婷香蕉 | 337p日本欧洲亚洲大胆精品| 56国语精品自产拍在线观看| 色婷婷av一区二区三区大白胸| 成人av动漫网站| 成人福利视频在线| 成人影视亚洲图片在线| 国产黄色成人av| 风间由美一区二区三区在线观看| 国产麻豆精品久久一二三| 久久国产乱子精品免费女| 久久国产欧美日韩精品| 九九九精品视频| 国产麻豆成人精品| jlzzjlzz亚洲女人18| 波多野结衣亚洲| 色播五月激情综合网| 一本大道久久a久久精二百| 在线看不卡av| 欧美人妇做爰xxxⅹ性高电影 | 91美女在线观看| 97se狠狠狠综合亚洲狠狠| 99精品视频在线观看免费| 91在线小视频| 欧美精品视频www在线观看| 欧美精品亚洲一区二区在线播放| 欧美一级黄色大片| 久久午夜老司机| 亚洲欧洲精品天堂一级| 亚洲女同一区二区| 婷婷夜色潮精品综合在线| 亚洲一区二区三区影院| 亚洲bt欧美bt精品| 精品亚洲国产成人av制服丝袜| 国产成人在线电影| 色老汉av一区二区三区| 88在线观看91蜜桃国自产| 欧美一区二区黄| 国产欧美视频一区二区三区| 夜夜精品视频一区二区| 精品一区二区免费视频| 色综合网色综合| 欧美一级高清大全免费观看| 中文字幕乱码日本亚洲一区二区 | 亚洲欧美日韩电影| 日韩国产在线观看| 国产超碰在线一区| 欧美日韩一区二区在线观看视频| 日韩精品一区二区三区中文精品| 国产日本一区二区| 香蕉久久一区二区不卡无毒影院| 精品亚洲aⅴ乱码一区二区三区| 不卡的电视剧免费网站有什么| 91精品国产麻豆| 国产精品激情偷乱一区二区∴| 午夜精品久久久久久久久久| 国产999精品久久| 欧美一区二区精品| 亚洲天堂2014| 麻豆成人免费电影| 欧美制服丝袜第一页| 久久综合99re88久久爱| 夜夜操天天操亚洲| 国产999精品久久久久久绿帽| 51精品秘密在线观看| 亚洲靠逼com| 国产不卡在线一区| 日韩三级av在线播放| 一区二区三区欧美亚洲| 国产成人自拍高清视频在线免费播放| 欧美日韩久久久久久|