加载子页面的最佳方式?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调用传递了在下拉框中选择的值,该值与要检索的表单名称相关。
- 在SVG地图上添加水的渐变,就像在谷歌地图(PHP/JS)中一样
- PHP/JS-EchoJs函数PHP curl发布后的通知
- FullCalendar backend PHP/JS to symfony 3
- 什么'是一个用于PHP+JS(extJS)开发的IDE,支持ctrl+click
- PHP/JS 文本差异
- 一个页面上有两个引导 php-js 表单
- Piwik:如何跨域(PHP/JS)跟踪访问者(用户ID)
- 使用php-js-msyql的实时更新消息系统
- 使用PHP/JS自动刷新Highcharts
- 如何为PHP/JS游戏制作倒计时/定时器
- node.js可以选择性地引入到用普通PHP/js/CSS/HTML构建的web应用程序中吗
- 用PHP/JS开发依赖表单字段的最佳方法
- 无法从数字中删除空白(PHP/JS)
- PHP/JS:动态Dropboxes和回显SELECTED值
- 更改数据库值AJAX PHP JS
- '套接字连接错误'在Aptana 3上调试PHP/JS时
- PHP/JS:用JS函数发布输入值,并通过PHP进行回显
- 在“onexit”或“onsubmit”之后,查询mysql并填充表单字段,而无需离开页面php js
- "Share-to-Facebook" html / php / js
- 从 PHP-JS 返回数组的计算的读取值