如果您在 JavaScript 应用程序中不使用 Ajax,为什么会重新加载页面?

Why the page is reloaded if you don't use Ajax in JavaScript app?

提问人:elvis 提问时间:12/3/2022 更新时间:12/3/2022 访问量:62

问:

我是一名 Java 开发人员,我正在学习 JavaScript 和 React 的前端。现在我正在学习 Ajax。我看到这个 Ajax 用于从 API 异步获取数据,而无需刷新网页。但我不明白这种说法。那么,如果我在没有 Ajax 的情况下获取数据,页面会重新加载吗?有没有一个例子可以实际看到这一点?我的意思是,在没有 Ajax 的情况下从 API 获取数据并重新加载页面。在我看来,如果你从同步的 API 获取数据,它将等待接收数据,在此期间,流将停止,当数据被获取时,流将继续。但是为什么要重新加载页面呢?

我在一个简单的 React 应用程序中使用了这个实现:

componentDidMount() {
    // fetch('https://jsonplaceholder.typicode.com/users')
    //     .then(response => response.json())
    //     .then(users => this.setState({ users: users }));

    var request = new XMLHttpRequest();
    request.open('GET', 'https://jsonplaceholder.typicode.com/users', true);

    request.onload = () => {
        if (request.status >= 200 && request.status < 400) {
            var data = JSON.parse(request.responseText);
            this.setState({ users: data });
        } else {

        }
    }

    request.send();
}

所以,我明白如果我将标志从 true 更改为 false,请求将从异步更改为同步,并且请求将在没有 Ajax 的情况下完成。

但是,如果我使用标志 true 或 false 发出请求,我看不出应用程序中有任何区别。

任何反馈将不胜感激。

javascript reactjs ajax 异步 获取

评论


答:

0赞 Louys Patrice Bessette 12/3/2022 #1

Ajax 用于在不刷新网页的情况下从 API 异步获取数据。但我不明白这种说法。

该语句与浏览器 JavaScript 相关,其中 a 是获取新信息所必需的。 然后,AJAX技术组合允许在不使用浏览器的“提交”的情况下更新已加载页面的单个部分。form submit()

现在有了 React...您正在使用一种更新的技术,其中每个组件都可以根据状态更改单独重新渲染。
因此,整个网页作为一个整体重新加载的概念与 React 的概念完全相反。

对于 React,该标志应始终为 true(其默认值),因为您不想“冻结”任何 JS 执行。async