Ajax 板


LINE

※ 引述《danny0838 (道可道非常道)》之銘言: : 在下想做的是一套簡單的電子書系統,大概有幾個要求: : 1. 使用者只需要 IE 或 Fx 等網頁瀏覽器就能執行,不需安裝額外軟體。 : 2. 承上,所以希望整套網頁系統只用到 JS, CSS, HTML, XML 之類的, : 目前沒用過 JQuery,如果有需求會嘗試看看。 : 3. 整套系統可以全套在本機電腦上執行,也可以放在伺服器上,供使用者連線使用。 我想請教一下這個需求的用意是? 如果你要讓使用者在自己的電腦上使用,那麼以 HTML 和 Javascipt 為 基礎的 HTML Application,可以很簡單的達成你的要求。 如果你要放在伺服器上,單純的 HTML 加 Javascript 頂多讓使用者可以瀏覽而已, 如果要能編輯,甚至是你的資料檔不想讓使用者(透過輸入網址的方式)直接取得, 則必須搭配 php 等伺服器端的程式才能達成。 不管怎麼樣,硬要寫在一起,只是徒增維護和撰寫的複雜度而已。 不過如果你只是想做單純的瀏覽,不需要編刪的動作,那倒是勉強可以寫在一起。 只是取得資料檔列表的方式,伺服器端跟本機端要分開處理,其他部分倒可一起套用。 : 4. 架構大致分為 : (1) 網頁程式系統(JS, HTML, XML) : (2) 資料檔(很多,一個檔就是一本電子書) : 5. 流程大致為: : 開啟程式 : ↓ :   呈現操作介面和資料檔列表 : ↓ : 使用者選取操作方式,以及資料檔  ←   : ↓ ↑ : 程式載入必要的資料檔,分析並呈現結果 → : 問題大概有幾個: : 1. 本程式一開始是不會讀入所有資料檔的。 : 程式開啟時,要呈現出一個列表,列出所有資料檔,讓使用者去選擇。 : 就在下所知,如果要讀取伺服器的「某資料夾下的所有檔案」,必須使用 AJAX, 在本機是可以取得自己電腦的檔案結構啦。 至於單純使用 AJAX 就可以讀取伺服器的檔案結構... 如果你這麼認為的話,可能你的觀念還要再加強一下喔。 : 但 AJAX 不能純粹在本機運作,因此不宜; 在本機的話,HTML Application 有更直接的方法可以取得檔案列表。 : 而如果要讀取本機「某資料夾下的所有檔案」,必須使用 ActiveX, 我想簡單提一下,如果 client 要動用 server 的資源,除非該資源是公開的、 透過網址就可以直接取得的,否則單靠 AJAX / Javascript 辦不到, 同時要搭配如 php 之類的程式語言才行。 而 server 要動用 client 的資源,則是靠著 JAVA 或是 ActiveX 之類的來達成。 所以看到這邊我開始有點疑惑,你的要求是程式在本機跟伺服器都能執行, 然後資料檔全部都是放在使用者的電腦上嗎? : 但 ActiveX 不能在純粹在伺服器運作,因此也不宜。 ActiveX 本來就不是給伺服器用的。 : (另外,ActiveX 似乎只有 IE 支援) 沒錯,要跨平台、跨瀏覽器的話,請考慮用 JAVA。 : 不知以上認知是否錯誤? : 因此,除了資料檔以外,在下是否必須另外製作一個資料檔的路徑列表? 簡單講是這樣沒錯... : 2. 承上,在上述限制下,有什麼方法可以根據使用者的操作, : 動態載入使用者想開啟的資料檔? 從傳統的單純超連結,到新的 AJAX 技術,都可以達到你的要求吧。 : 目前在下的做法是建立一個隱藏的 iframe 去讀資料檔, : 但 iframe 的載入似乎需要時間, : 無法在載入的程式碼後面立刻抓取框架內容,否則會出錯。 這邊我不是很瞭解為什麼你會選擇這樣做? 如果你是以 AJAX 做的話,步驟大概像這樣: 使用者觸發讀取某一個資料檔的事件 -> 透過 AJAX 技術取得該資料檔的內容 -> 根據某些規則(如 BBCode 轉 HTML)產生要輸出的 HTML 原始碼 -> 將這個結果放到某個 division 裡面,這樣就完成了 按照這樣來講,根本不需要用到 iframe,更不用去等待、確認讀取完成、再 取得該 frame 的內容(更何況,你打算怎麼取得整個框架的內容)。 : 另外,在下希望資料檔格式盡量簡單,讓不懂網頁語法的使用者也能自由編輯, : 所以最好可以是 txt 或 xml... 最簡單當然是 txt,使用者程度夠的話,建議以 html 來做就可以了, xml 我是覺得不很必要,除非你打算順便紀錄諸如文章日期等等的額外資訊。 : 在下想問的是: : 如何讓主程式在 iframe 載入完成時,知道 iframe 已載入完全, : 然後分析並呈現其結果? : 或者,有比 iframe 更好的作法? : 3. 承上,因為同一個資料檔可能被重複開啟,想請問以下何種做法最有效率最省資源: : 1) iframe 載入後就保留,如果日後用到同一個資料檔, : 就直接讀取對應 iframe 的內容。 : 2) iframe 載入後,把內容存到主程式下的某個變數中,並關閉 iframe, :    如果日後用到同一個資料檔,就直接讀取對應的變數。 : 3) iframe 載入且讀完後就關閉,如果日後用到同一個資料檔,就重新載入一次。 : 4) 有比以上三者更好的方法? 我想就只需要一個 division,使用者開啟一次則讀取一次就好。 實在不需要儲存到某個變數,或是製造多個 division / iframe 存放。 我覺得你好像把所謂的「日後」想得太遠了,事實上不管如何, 使用者一關掉瀏覽器,你做的這些「快取」通通都會消失歸零, 你可以想想看,要使用者留著一個瀏覽視窗不要關閉,可以維持多久呢? 而為了做這個 cache,所造成的網頁結構複雜度、使用者記憶體耗用量、 使用者操作的順暢程度、使用感受等等,再加上撰寫相關機制以及日後 維護所花費的成本,我個人是覺得這麼做是弊大於利。 : 4. 在下想製作類似 phpBB 的 BBCode 或維基語法的自訂標籤,再用程式分析呈現, : 以供定義和規範化電子書的格式, : 並且可依實際需要配合樣式表做出多種變化、多種分析方式。 要做到最大的變化性,我想 HTML 會比什麼 BBCode 或是維基語法還要優秀很多。 : 目前最大障礙是,HTML 標籤只容許巢狀,而不容許交叉。 : 假設在下的自訂標籤語法如下: : [h1]標題[/h1] : 正文正文正文[note]註解註解[/note]正文正文正文...... : 這段文字會被程式轉換為: : <h1>標題</h1><br/><br/>正文正文正文<span class="note">註解註解</span> : 正文正文正文...... : (中間沒有換行,是為了BBS顯示才換行的) : 但如果有人寫成: : [h1]標[note]題[/h1] : 正文正文正文註解註解[/note]正文正文正文...... : 轉換後就會得到錯誤的結果...... : 在下希望程式能自動偵測這類的問題,並且自動修正為巢狀標籤: : <h1>標<span class="note">題</span></h1><br/><br/><span class="note"> : 正文正文正文註解註解</span>正文正文正文...... : 目前就卡在不知如何自動偵測標籤的不當嵌套, : 以及偵測出來後自動複製必要的標籤,請求各位大大協助。 關於這點,恕我不同意你的觀點。 我想先請教的是,你要根據什麼來認定這個不當嵌套的內容,是要依照你 所定的規則來做修正?使用者真正想表達的效果,一定是你設想的這樣嗎? 其實瀏覽器也有自己的容錯機制,而且肯定比您自己撰寫的要來得完善,因此, 我比較傾向把這個問題交給瀏覽器解決。 所以您要做的只是將 BBCode(或是您最終決定採用的其他格式)按照正常的規則 解析成 HTML,至於這個結果是不是可接受,就交給瀏覽器來解釋。 如果最後顯示的結果可以接受那就還好,否則就是該使用者犯了連瀏覽器都 無法接受的錯誤,這樣則直接要求該使用者改善。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.165.34.174







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP