动态更新网页内容而不刷新它?

时间:2018-07-23 13:02:41

标签: javascript html

我有一个多页站点,当我选择任何导航链接转到另一个页面时,它将每次重新加载整个页面。我想我可以使用AJAX和jQuery来创建XMLHttpRequest并为每个页面的body标签指定一个要定位的ID。

但是,有没有更好的方法可以做到这一点?我一直在到处寻找帮助,几年前使用上述方法可以得到很多帮助。

在此先感谢您的帮助。

6 个答案:

答案 0 :(得分:2)

我认为您想构建一个单页应用程序(SPA)。

有许多框架可以帮助您构建此类应用程序,例如Angular,React等。

答案 1 :(得分:1)

好吧,您显然可以通过使用js框架来实现这一点,该框架使您能够构建所谓的单页应用程序(SPA),例如angular,react,vue ....查看angulars文档

https://angular.io/

答案 2 :(得分:1)

Angular太大了,无法满足您的需求。您可以使用React,如果您安装并运行create-react-app,它将为您设置(或几乎全部)设置。

https://www.npmjs.com/package/create-react-app

https://github.com/facebook/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开发框架中非常受欢迎,并在后端以许多语言提供了广泛的支持。因此,现在您可以使用后端上的数据库来更新页面,而无需刷新页面。

这三个框架在一个充满活力的社区中都很受欢迎,可以帮助您在遇到困难时解决问题。您应该对想要做的事情进行更多的研究,然后调查这三个框架/库以确定适合您的期望的内容,然后继续前进。希望这会有所帮助。