如何在不重新加载页面的情况下获取数据表单数据库?

Posted

技术标签:

【中文标题】如何在不重新加载页面的情况下获取数据表单数据库?【英文标题】:How to get data form database without reloading the page? 【发布时间】:2012-02-05 07:45:09 【问题描述】:

当用户询问它显示在部门顶部的任何问题而不重新加载页面时,我想制作一个常见问题解答面板,因为我认为我必须每隔几秒就与数据库建立连接。现在的问题是如何在不重新加载页面的情况下建立连接以及如何显示新问题?

【问题讨论】:

【参考方案1】:

我认为您需要的是 AJAX。这是一种仅通过部分页面刷新来联系服务器的方式。我不知道它如何与 php 一起使用,因为我使用的是 asp.net,但这里是 a link 可能会有所帮助。

【讨论】:

【参考方案2】:

您必须研究推送/发布/订阅技术。我知道的很少有pubnum 和commet

【讨论】:

【参考方案3】:

你有两个选择:

    Ajax,它允许您使用 javascript 从服务器检索数据,然后您可以使用它来操作 DOM。 Ajax 的基础是XMLHttpRequest 对象,它允许您在JavaScript 中完全在后台检索数据。请注意,Ajax 受 Same Origin Policy 的限制,但就您所描述的而言,这很好 - 您将从同一来源加载数据。

    框架(例如,iframe 元素),您可以通过设置其src 属性来将内容加载到其中。

在这两者中,Ajax 更加灵活。

参考/延伸阅读:

DOM2 Core DOM2 html DOM3 Core HTML5 Web Applications APIs XMLHttpRequest object

旁注:虽然显然您可以直接使用XMLHttpRequest 和DOM 方法,但请注意存在跨浏览器的差异(和彻底的错误),可以通过像jQuery 这样的优秀库为您解决这些问题, Prototype、YUI、Closure 或 any of several others。它们还提供了许多有用的实用功能,让您可以专注于您要解决的实际问题,而不是管道的细节。

例如,以下是使用 jQuery 向服务器发送 Ajax 请求并使用服务器发回的 HTML 片段更新页面上的元素的方法:

$("#target").load("get_the_data.php", article: x);

也就是说:从 get_the_data.php 请求一个 HTML 片段,将参数 article 与来自 x 变量的值一起发送给它,然后将该 HTML 片段放入具有 HTML id“目标”的元素中。如果您不使用库,那将是一个很好的 10 行代码。现在,这不是很多,但一遍又一遍地重复(并在此过程中处理一个 IE 错误,围绕通过他们的id 查找元素),你会看到它是如何加起来的。

我确实建议您阅读上面的参考资料,这样您就知道图书馆是如何做他们正在做的事情的(这不是魔术),但是没有理由不利用人们所做的辛勤工作来简化这些工作。

【讨论】:

【参考方案4】:

轮到阿贾克斯了。您需要的是一种称为 AJAX 的技术。你可以在 jQuery 库中找到一些有用的东西,它提供了不同的方法来更轻松地使用 Ajax。

http://api.jquery.com/jQuery.ajax/

您将通过客户端脚本语言(在本例中为 Javascript)创建与服务器端编程语言和数据库的关系。 这是这些现实的一个例子:

http://jqueryui.com/demos/autocomplete/

【讨论】:

以上是关于如何在不重新加载页面的情况下获取数据表单数据库?的主要内容,如果未能解决你的问题,请参考以下文章

在不重新加载页面的情况下更新 Django 中的表单值?

如何在不重新加载页面的情况下刷新 div 和 mysql 代码

如何在不重新加载整个页面的情况下刷新 div?

如何在不重新加载页面的情况下将任意 JSON 发送到 node.js?

Django:如何在不重新加载的情况下在页面上显示更新的信息

如何在不刷新的情况下执行 jquery ajax 来重新加载我的数据