[問題] 一個 JS 的系統問題
在下想做的是一套簡單的電子書系統,大概有幾個要求:
1. 使用者只需要 IE 或 Fx 等網頁瀏覽器就能執行,不需安裝額外軟體。
2. 承上,所以希望整套網頁系統只用到 JS, CSS, HTML, XML 之類的,
目前沒用過 JQuery,如果有需求會嘗試看看。
3. 整套系統可以全套在本機電腦上執行,也可以放在伺服器上,供使用者連線使用。
4. 架構大致分為
(1) 網頁程式系統(JS, HTML, XML)
(2) 資料檔(很多,一個檔就是一本電子書)
5. 流程大致為:
開啟程式
↓
呈現操作介面和資料檔列表
↓
使用者選取操作方式,以及資料檔 ←
↓ ↑
程式載入必要的資料檔,分析並呈現結果 →
問題大概有幾個:
1. 本程式一開始是不會讀入所有資料檔的。
程式開啟時,要呈現出一個列表,列出所有資料檔,讓使用者去選擇。
就在下所知,如果要讀取伺服器的「某資料夾下的所有檔案」,必須使用 AJAX,
但 AJAX 不能純粹在本機運作,因此不宜;
而如果要讀取本機「某資料夾下的所有檔案」,必須使用 ActiveX,
但 ActiveX 不能在純粹在伺服器運作,因此也不宜。
(另外,ActiveX 似乎只有 IE 支援)
不知以上認知是否錯誤?
因此,除了資料檔以外,在下是否必須另外製作一個資料檔的路徑列表?
2. 承上,在上述限制下,有什麼方法可以根據使用者的操作,
動態載入使用者想開啟的資料檔?
目前在下的做法是建立一個隱藏的 iframe 去讀資料檔,
但 iframe 的載入似乎需要時間,
無法在載入的程式碼後面立刻抓取框架內容,否則會出錯。
另外,在下希望資料檔格式盡量簡單,讓不懂網頁語法的使用者也能自由編輯,
所以最好可以是 txt 或 xml...
在下想問的是:
如何讓主程式在 iframe 載入完成時,知道 iframe 已載入完全,
然後分析並呈現其結果?
或者,有比 iframe 更好的作法?
3. 承上,因為同一個資料檔可能被重複開啟,想請問以下何種做法最有效率最省資源:
1) iframe 載入後就保留,如果日後用到同一個資料檔,
就直接讀取對應 iframe 的內容。
2) iframe 載入後,把內容存到主程式下的某個變數中,並關閉 iframe,
如果日後用到同一個資料檔,就直接讀取對應的變數。
3) iframe 載入且讀完後就關閉,如果日後用到同一個資料檔,就重新載入一次。
4) 有比以上三者更好的方法?
4. 在下想製作類似 phpBB 的 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>正文正文正文......
目前就卡在不知如何自動偵測標籤的不當嵌套,
以及偵測出來後自動複製必要的標籤,請求各位大大協助。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.25.118.142
※ 編輯: danny0838 來自: 163.25.118.142 (01/13 11:16)
※ 編輯: danny0838 來自: 163.25.118.142 (01/13 11:22)
※ 編輯: danny0838 來自: 163.25.118.142 (01/13 11:33)
→
01/13 11:57, , 1F
01/13 11:57, 1F
討論串 (同標題文章)