加载子页面的最佳方法是什么? PHP还是JS?

时间:2013-08-30 06:54:17

标签: php javascript

我想知道使用PHP或JS加载子页面是否更好。到目前为止,我一直在使用JS(jQuery,严格来说)来提供一些花哨的加载动画,但这种技术有一个严重的缺点 - 它不能改变URL地址,所以用户没有使用浏览器的后退按钮,也无法共享确切子页面的URL。此外,我不确定搜索引擎机器人是否认识到基于JS的子页面。或者也许我错了,这一切都与JS有关吗?

如果没有,那么在PHP中组织子页面的“正确方法”是什么?我是否有义务使用框架甚至是小型网站?到目前为止,我一直只使用PHP的include()方法。

4 个答案:

答案 0 :(得分:1)

好方法(没有最好的方法):使用服务器端语言(如PHP)进行模板化。把Javascript / jQuery放在其上 - 所以你有两个世界中最好的,为启用javascript的用户制作精美的动画,以及作为后备的仍在工作的页面。还有jQuery历史插件,可以在ajax加载后启用浏览器中的书签/历史记录。

您不需要小型网站的框架。但是,如果要根据用户输入加载内容,则需要一种方法来验证请求变量,而框架可能会对此有所帮助。

对于javascript方法中的SEO,搜索引擎通常不执行javascript。但是,它们可以通过javascript对您输入的文件进行索引(我猜您将内容存储在文本文件或将被编入索引的html文件中)。

答案 1 :(得分:1)

是JavaScript可以更新浏览器的URL,但它仅适用于HTML5兼容的浏览器。

https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Manipulating_the_browser_history

replaceState函数更改浏览器中的URL(无后退按钮); pushState函数将新URL推送到浏览器,以便可以使用后退按钮。

示例:

history.pushState({}, 'Title', 'foo.html');

这可以帮助您解决问题。

答案 2 :(得分:0)

使用JS加载子页面对动态内容很有意义。 对于静态页面,我建议使用PHP。

您确实不需要使用框架,但请确保不要使用不受控制的GET / POST变量包含文件(出于安全原因)。

答案 3 :(得分:0)

我使用的方法是使用PHP编写的子表单,并通过使用JQuery完成的AJAX调用加载。

实际上,AJAX调用了一个PHP响应器并传递了一个带有表单名称的值。检索表单[使用include(...)]并使用输出缓冲捕获结果HTML。

我使用的文件夹布局是:

lib
|
+-subforms
| |
| +-admin
| | +-aform1.php
| | +-aform2.php
| | + :
| | + aformn.php
| |
| +-client
| | +-cform1.php
| | +-cform2.php
| | + :
| | + cformn.php
|
+-supportFunctions.php

其中lib指的是应用的包含路径

AJAX调用传递了一个下拉框中选择的值,该下拉框与要检索的表单名称相关。