加载子页面的最佳方式?PHP或JS


Best way to load subpages? PHP or JS?

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

如果没有,那么用PHP组织子页面的"正确方法"是什么?我是否有义务使用框架,即使是小型网站?到目前为止,我只使用了PHP的include()方法。

是的,JavaScript可以更新浏览器的URL,但它只能在符合HTML5的浏览器中工作。

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

replaceState功能更改浏览器中的URL(无后退按钮);CCD_ 3功能将新URL推送到浏览器以便可以使用后退按钮。

示例:

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

这可能会帮助你解决问题。

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

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

至于javascript方法中的SEO,搜索引擎通常不会执行javascript。然而,它们会对您通过javascript提取的文件进行索引(我猜您将内容存储在将被索引的文本文件或html文件中)。

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

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

我使用的方法是用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调用传递了在下拉框中选择的值,该值与要检索的表单名称相关。