[英]To use PHP templates or jQuery AJAX calls?
這是我的index.php
頁面的摘錄,其中顯示了帶有三個HTML鏈接的菜單。
選擇菜單項將定義page參數,然后將PHP模板邏輯加載該頁面參數,並填充到<div id="main">
。
<div class="span-24" id="menu">
<table>
<tr>
<td><a href="index.php?page=races">Races</a></td>
<td><a href="index.php?page=runners">Runners</a></td>
<td><a href="index.php?page=searchRunners">Search</a></td>
</tr>
</table>
<br/>
</div>
<!-- main content -->
<div class="span-24" id="main">
<?php
$MYROOT=$_SERVER['DOCUMENT_ROOT'];
if(isset($_GET['page']))
{
$page=$_GET['page'];
@ require_once($MYROOT."/$page.php");
}
else
{
@ require_once($MYROOT."/races.php");
}
?>
</div>
該解決方案效果很好,但是我擔心隨着我添加更多頁面並跟蹤更多頁面參數,這種方法將難以通過各種PHP require()
/ require_once()
方法調用來維護。
我也有jQuery,我想知道僅使用基於AJAX的查詢來呈現<div id="main">
的HTML的優點或缺點是什么?
我認為使用AJAX可能是一個更好的解決方案,因為我將在可以調用的頁面中以及在AJAX調用中可以傳遞哪些參數方面具有更大的靈活性。
我知道PHP和AJAX可以一起使用,但是如果您正在啟動這種類型的項目,您將如何做?
您不想這樣做。 AJAX很好,但是所有這一切都會濫用它。 這不僅會導致禁用Javascript的人不必要地訪問該網站(我相信您已經知道),而且還會破壞您網站上的網絡導航標准。 那么,某人如何發送鏈接給朋友以查看“比賽”頁面? 如何在頁面之間來回切換? 有解決方法,但這是不值得的。 您更適合只重構您的PHP代碼,因此它在包含所需內容的同時安全而動態。
為了進一步了解Paolo所說的內容,Google和其他搜索引擎無法“抓取”通過javascript加載的任何內容。 這意味着僅頁面上的靜態信息將被索引,而頁面排名將幾乎不存在。
如果您使用ajax,您仍將與需要為請求的任務進行設置的php進行通訊,因此什么都沒有真正改變。 我想我想知道為什么您要將參數傳遞回單個php腳本,而不是像這樣調用不同的php文件:
<td><a href="races.php">Races</a></td>
<td><a href="runners.php">Runners</a></td>
<td><a href="searchrunners.php">Search</a></td>
將它們分開放置。 使用模板系統。 一個非常簡單的使用方法是http://andy.greyledge.net/voot/index.php
您從一個HTML模板頁面開始,其中包含“%HEADER%”,“%FOOTER%”或“%BODY%”之類的替換器。
您將此頁面導入php頁面,設置這些變量,然后呈現該頁面。
如果要添加更多頁面,可以將其添加到HTML模板的“菜單”中,並顯示每個頁面。
其他所有人所說的一切都是正確的。
另一種選擇是使用要包含的頁面數組:
<?php
$pages = array('page', 'races');
$MYROOT=$_SERVER['DOCUMENT_ROOT'];
if(isset($pages[$_GET['page']])){
@require_once($_GET['page'].'.php');
}
?>
但是,如果您要以這種方式進行操作,則可能要考慮繼續使用MVC框架,因為這似乎是您嘗試重新創建的內容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.