2012-04-17 34 views
0

假設你有這樣的事情 HTML文件:動態用ajax,php js和html填寫頁面?

<head></head> 
<body> 
    <div id="my_personal_div"> 
    </div> 
</body> 

JavaScript文件:

$.(document).ready(){ 
    $.ajax({ 
     url:/any_php.php, 
     ... 
     ... 
     if (msg){ 
     $("#my_personal_div").html(msg); 
     } 
    }); 

我any_php.php文件:

echo "<img src=any_image.jpg />" 

這樣的想法是讓動態div到一個html填充它與我創建的一些php內容,所以我可以一次性喂多個htmls與該div。這將是什麼問題?任何弊端?任何巨大的安全問題?,任何更好的方式來獲得完整的個人飼養,我的意思是,因爲我可以在那裏從php文件中獲取圖像,輸入,文本,圖像等任何我想要的東西。

回答

0

缺點是它會使多一個 http請求每一次,這需要時間...和資源。

所以這是一個很好的方法,如果你只需要改變頁面上的內容而不用重新加載所有頁面。

實現此目的的一個好方法是當用戶想要更改頁面而不是重新加載全部頁面時,只需加載已更改的內容並使用瀏覽器上的推送狀態表明它是新頁面即可。例如,網站http://gizmodo.com/使用此。

安全性方面沒有問題,就像加載一個新頁面一樣。

+0

我沒有看到在您建議的網站中使用過多的方法。事實上,http://kotaku.com和http://www.devthought.com/都是很好的例子,它實際上對每個請求都使用AJAX。 當然,更不用說Google或Facebook了。 – 2012-04-17 19:35:20

+0

ajax加載內容和推送狀態的例子:當你切換頁面時,再次只是一個例子,它們存在多個! – 2012-04-17 20:28:53

+0

@MarcoGamba順便說一下,Google和Facebook不使用任何jQuery。所以不是一個很好的例子,如果你看看這個問題;) – 2012-04-17 22:16:17

0

您必須確保請求(GET和POST)被您正在訪問的php文件過濾。 如果您不這樣做,任何人都可以通過修改請求來運行可能會損害您的網站的代碼(如SQL注入)。 同樣適用於任何其他的PHP腳本,所以它沒有特別針對ajax。

無論如何,你想創建什麼? 一個div隨機顯示每個訪問的內容? 即使用戶沒有重新加載頁面,它會在幾秒鐘後更改並顯示其他內容嗎?

如果你只是想隨機顯示一些內容,你可以做到這一點,而無需使用Ajax。 如果您只是想在div內顯示一些文本,也一樣。

使用ajax會導致更多的連接,這可能會給服務器帶來更多壓力,具體取決於您使用它的多少。