簡體   English   中英

網頁上的隨機詞每1/10秒

[英]Random word on webpage every 1/10th of a second

我正在為一個藝術項目開發一個基於網絡的小(javascript)'應用程序'。 這個東西叫做“詩歌生成器”,它是一個根據用戶輸入生成隨機詩歌的劇本。

腳本必須每1/10秒向用戶顯示一個隨機字。 使用的詞表,計數109.582個單詞。

我已經嘗試過不同的解決方案:

  1. 將所有單詞放在一個文本文件中,並得到一個文本文件的隨機行 - >太慢(並且用戶必須先下載一個3MB的文本文件才能使用該應用程序)
  2. 將所有單詞放在Javascript中的數組中。 - > javascript數組顯然無法處理109.585項
  3. 使用jQuery的Ajax函數和Javascript區間函數從數據庫中提取單詞 - >這個解決方案在我的localhost上測試時工作得很好,但是一旦上傳到真實的web環境,這個方法被證明太慢了。 (我可以想象,如果我每秒向他們的服務器執行10次查詢,我的托管服務提供商就不會那么開心。)

那么..有沒有人知道一種不同的方法,我可以用它來每隔1/10秒在網頁上顯示一個隨機單詞? 它不一定要使用php或javascript,只要它在瀏覽中運行,我很高興!

提前致謝

Teis

沒有理由你必須每十分之一秒拉一整個數據集。 每分鍾從數據庫中提取一個合理的數量(大約600個單詞),將其加載到本地javascript對象中,然后迭代它。

當數組索引變得足夠高或計時器達到一分鍾時,輪詢另一組600。

處理低至十分之一秒的時間時,您不希望每次都要調用服務器! 您甚至可以將整個數據集加載到memcached並輪詢隨機字,從而跳過昂貴的數據庫調用,因為整個數據集都會加載到內存中。

您可以嘗試僅將單詞的一部分加載到JS數組中。 也許您可以嘗試從數據庫中僅加載1000個(隨機)單詞並顯示它們。

只要您不需要生成瘋狂的長文本,就可以將隨機化分為兩個步驟:

首先預選一些服務器端的字(讓我們說 - 5000?)

然后 ,在客戶端,使用JS從預先選擇的單詞中隨機選擇更多。

優點:無需額外要求; JS應該處理那么大的數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM