我們有文本(存儲在MSSQL數據庫)的大文件,我們需要提供像字典查找單詞時,他們上空盤旋。高亮顯示文本,並提供defintions在.NET
例如,如果有如下語句: 「快速狗跳過了棕色狐狸」我們的用戶可以創建任何的那些詞,如「快速」,「狗」一個「定義」,「躍過「等等,我們需要突出顯示這些文本,並在鼠標懸停時提供已定義的文本。
目前我們有一個執行工作,但它遭受了令人難以置信的糟糕的性能,當前的實現使用正則表達式來解析文本,並在文本中的詞後面插入一段JavaScript代碼,如果它符合定義。現在我們可以在任何地方看到400個或更多的定義,並且文本可以是幾段或更長的段落,這會掛起整個服務器,並使應用程序無法宣傳。
我試圖用正則表達式編譯擺弄優化的代碼,但它不利於問題的多了,請求仍然超時返回任何東西之前。
我很好奇,我一定要實現這個什麼其他選擇。
我已經考慮:
- 寫作,坐在在後臺輪詢 定義,並在空閒時間更新文本
- 緩存的一些形式的服務,然而,這是不是真的要解決這個問題,人類作爲站點不會加載的根本原因 在所有的頁面 可能不會獲取緩存
- 實現正則表達式的客戶端,我想頁面將加載然後 但我懷疑這樣做客戶端會有什麼比做得 服務器端更好的甚至可能鎖住瀏覽器
應用程序是一個ASP.NET網站(.NET 3.5目前移動至4 soonish),使用SQL Server 2005/8(視在客戶端網站上)和NHibernate。
在我看來,這樣做,早期是一個錯誤的工作。爲什麼不在客戶端實際請求時抓住服務器端的定義?當用戶突出顯示時,進行AJAX調用或獲取定義。 – Jeremy
我認爲,但我們確實需要預先突出一個字,表明有一個定義可用,並在那裏字包含換句話說,即,「房子」和「房子的計劃」雙方進行了定義,我不是案件肯定怎麼可能? –