簡體   English   中英

在服務器端獲取遠程數據並在服務器上進行處理是否比將數據傳遞給客戶端進行處理更快?

[英]Is fetching remote data server-side and processing it on server faster than passing data to client to handle?

我正在開發一個網絡應用程序,其功能類似於搜索引擎(只是非常具體且規模較小)。 當用戶發出查詢時,我將解析該查詢,並根據查詢內容執行以下操作之一:

  • 另一個域(即,來自www.example.com/rss/)的XML文件中獲取數據,該文件實際上是RSS提要
  • 外部網頁中獲取HTML,然后繼續解析它以找到在該頁面上某個div中找到的文本

所有數據均為純文本格式,只有幾個特定的​​查詢會返回圖像。 將顯示此數據,而無需刷新/重定向頁面。

我知道,有一個相同的域策略會阻止我使用Javascript / Ajax來獲取此數據。 一種選擇是使用PHP來執行此操作,但是我主要關心的是服務器負載。

所以我擔心的是:

  1. 是否有任何變通辦法來獲取此數據客戶端而不是服務器端?
  2. 如果沒有,那么我的最佳解決方案是:通過服務器獲取數據,將其傳遞給客戶端以進行解析(使用Javascript / Ajax),然后以適當的形式進行顯示?
  3. 如果以上是我的解決方案,則我的服務器正在使用PHP進行的所有操作都是從外部域獲取數據。 在最壞(最好?)的情況下,假設在一分鍾內執行一千個左右的請求,那么我的Web服務器處理所有這些請求是否有效?

一旦我對事件的流程有了清晰的了解,就可以輕松開始。

謝謝。

我只是完成一個項目,以執行與您的要求相同的請求。

我的建議是:

  1. 用於文件,[1]用於前端,進行ajax調用以返回URL; [2]接收ajax調用,並從url獲取文件內容,然后解析xml / html

    • 這樣,它可以避免您的php在某些情況下死亡
  2. 對於php,請查看[DomDocument]類,對於解析xml / html,還需要[DOMXPath]

請閱讀: http : //www.php.net/manual/zh/class.domdocument.php

無論您做什么,我建議您始終將數據存檔在本地服務器中。

因此,該過程變為-首先搜索您的本地(如果不存在),然后從遠程抓取並存檔-24小時。

順便說一句,對於您的客戶端解析想法,我建議您這樣做。 jQuery可以處理html和xml,對於HTML,您只需在解析之前過濾所有js代碼即可。

這樣的想法變成:

  1. Ajax呼叫本地服務

  2. 本地php搶xm / html(但不解析)

  3. 存檔到本地

  4. 發送過濾器html / xml到前端,讓jQuery對其進行解析。

HTML與XML類似。 我建議抓取HTML格式的頁面,然后使用XML閱讀器XML遍歷該頁面。

暫無
暫無

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

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