我不知道它是否可能,但只是想問我們是否可以cfhttp或任何其他的東西來讀取選定數量的數據,而不是將整個文件放入CFHTTP.FileContent中。在多個文件中使用cfhttp需要的時間過長
我正在使用cfhttp,並且只想從遠程xml文件(大約20個)讀取最後兩行,並從一些文本文件(其中大約7個)讀取中間兩行。有沒有什麼辦法可以讀取特定的數據,而不是獲取所有文件,因爲它現在需要大量的時間(大約15-20秒)。我只是想減少我的.cfm頁面的運行時間。 任何建議???
我不知道它是否可能,但只是想問我們是否可以cfhttp或任何其他的東西來讀取選定數量的數據,而不是將整個文件放入CFHTTP.FileContent中。在多個文件中使用cfhttp需要的時間過長
我正在使用cfhttp,並且只想從遠程xml文件(大約20個)讀取最後兩行,並從一些文本文件(其中大約7個)讀取中間兩行。有沒有什麼辦法可以讀取特定的數據,而不是獲取所有文件,因爲它現在需要大量的時間(大約15-20秒)。我只是想減少我的.cfm頁面的運行時間。 任何建議???
嗯,沒有真正的任何特殊的方式來獲得遠程文件的一部分。
你每次都必須這樣做嗎?您可以在後臺獲取文件,在本地寫入文件,並讓您的實際傳入請求只讀取這些文件?使遠程文件與傳入請求異步讀取?
如果沒有,你使用CF8 +,你可以使用CFTHREAD線程出來的各種請求以並行方式運行:http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_t_04.html
您可以使用「加入」行動進行到底,使等待所有線程來完成。
編輯:
這裏是一個偉大的教程由本·納德爾使用CFThread並行CFHTTP請求:
http://www.bennadel.com/blog/749-Learning-ColdFusion-8-CFThread-Part-II-Parallel-Threads.htm
還有別的東西,但:
27-30連續的http請求不應該花20-30秒。它甚至不需要1-2秒 - 所以你可能會遇到一些嚴重的其他問題。
HTTP無法以這種方式讀取文件。這與ColdFusion無關。
在第一次使用CFHTTP的方法=「HEAD」運行它時,您可以使用一些智能緩存來減少時間,但費時較長。
您是否擁有該頁面的本地副本?
method =「HEAD」只會抓取http標頭,而不是整個文件,這樣會稍微提高速度。無論哪種方式,你都可以提出將近30個文件請求,所以這種方法不會以你的方式進行。
如何讓CF只用URL參數來提供該文件塊?
既然是XML,我猜你可以使用xmlSearch()並只返回結果?
至於文本文件,你可以通過啓動& numOfLines並只返回那些行作爲字符串?
我不認爲我們可以在文本文件的情況下將startlien和noOfLines作爲參數傳遞給cfhttp。 – 2010-04-28 18:57:07
我正在考慮使用REST調用遠程CF服務器。只有遠程服務器http服務器? – Henry 2010-04-28 19:05:46
緩存當然可以幫助,特別是如果文件可以緩存,所以他們不必都在同一頁面加載更新。如果所有的25-30個電話都必須同時進行,那麼CFTHREAD絕對是您的選擇。 – 2010-04-27 21:01:54