我有一个多页站点,当我选择任何导航链接转到另一个页面时,它将每次重新加载整个页面。我想我可以使用AJAX和jQuery来创建XMLHttpRequest并为每个页面的body标签指定一个要定位的ID。
但是,有没有更好的方法可以做到这一点?我一直在到处寻找帮助,几年前使用上述方法可以得到很多帮助。
在此先感谢您的帮助。
答案 0 :(得分:2)
我认为您想构建一个单页应用程序(SPA)。
有许多框架可以帮助您构建此类应用程序,例如Angular,React等。
答案 1 :(得分:1)
好吧,您显然可以通过使用js框架来实现这一点,该框架使您能够构建所谓的单页应用程序(SPA),例如angular,react,vue ....查看angulars文档
答案 2 :(得分:1)
Angular太大了,无法满足您的需求。您可以使用React,如果您安装并运行create-react-app,它将为您设置(或几乎全部)设置。
答案 3 :(得分:0)
在框架成为事物之前,我们通常将内容保留在框架中,并使用javascript每隔x秒刷新一次页面。
看看这个答案:
An Iframe i need to refresh every 30 seconds (but not the whole page)
答案 4 :(得分:0)
我认为实现此目标的最佳方法是进行异步调用以交付所需内容,而无需重新加载整个页面。
这可以使用Javascript或JQuery完成。 JSON是用于来回发送数据的协议,因此您可以使用非常简单的基于XML的格式传递参数并从查询中获取结果。
但是有很多不同的方法可以做到这一点。为了改善您的问题,建议您点击以下链接:
[https://stackoverflow.com/help/how-to-ask][1]
现在,仅向您展示一种通用方法,您可以使用JQuery调用一个PHP页面,该页面将反馈您需要的任何内容。它是这样的:
var params = {
"param1" : param1_value,
"param2" : param2_value,
};
var url = "page_to_call.php";
$.ajax({
context : this,
type : "POST",
url : url,
data : params,
dataType: "json",
encode : true
})
.done(function(data){
console.log(data);
})
.fail(function(data){
console.log(data);
});
在通话后您想要返回的任何内容都可以像这样被发回:
<?php
$return = array();
$return["SOME_DATA"] = "some content here";
echo json_encode($return);
?>
答案 5 :(得分:0)
好像您要创建SPA或单页应用程序。简单的HTML,CSS和JS不可能做到这一点。使用原始JavaScript,您可以在不刷新页面的情况下更改页面,但是如果没有大量输入的测试,这将非常简单。
要做您想做的最好的方法是使用框架。最好的框架是Angular,React或Vue。
Angular是用于创建单页应用程序的基于JavaScript的Web框架。尽管它最初是在JavaScript上使用的,但是现在有了新版本,他们已经将其转换为TypeScript(一种类似于JS的语言,但有一些区别)。
React是JS库,除了它不是框架之外,它几乎可以完成相同的操作。框架是开发所需要的完整东西,但是库更像是其他工具,您可以使用它们来开发一些其他东西,而不是自己编写所有代码,而仅仅为了最简单的事情而花费数百行。如果您想要有关框架和库的更多信息,请参见此处:What is the difference between a framework and a library?
Vue是一个JS框架,用于创建用户界面。它不是真正的SPA,但可以与其他功能相同。
这三个也可以与整个堆栈一起用作后端和您选择的数据库。尽管MongoDB在Web开发框架中非常受欢迎,并在后端以许多语言提供了广泛的支持。因此,现在您可以使用后端上的数据库来更新页面,而无需刷新页面。
这三个框架在一个充满活力的社区中都很受欢迎,可以帮助您在遇到困难时解决问题。您应该对想要做的事情进行更多的研究,然后调查这三个框架/库以确定适合您的期望的内容,然后继续前进。希望这会有所帮助。