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


How to get data form database without reloading the page?

当用户提出任何问题时,我想制作一个faq面板,它显示在分区顶部,而无需重新加载页面。为此,我想每隔几秒钟就必须与数据库建立连接。现在的问题是,如何在不重新加载页面的情况下进行连接,以及如何显示新的问题?

您有两个选项:

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

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

在这两者中,Ajax要灵活得多。

参考文献/进一步阅读:

  • DOM2核心
  • DOM2 HTML
  • DOM3核心
  • HTML5 Web应用程序API
  • XMLHttpRequest对象

附带说明:虽然很明显,您可以直接使用XMLHttpRequest和DOM方法,但请注意,存在跨浏览器的差异(以及彻底的错误),可以通过jQuery、Prototype、YUI、Closure或其他任何一个好的库来消除这些差异。它们还提供了许多有用的实用程序功能,使您能够专注于试图解决的实际问题,而不是管道的细节。

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

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

也就是说:从get_the_data.php请求一个HTML片段,向它发送带有x变量值的参数article,并将该HTML片段放入具有HTML id"目标"的元素中。如果你不使用库,这将是一个很好的10行代码。现在,这并不多,但要反复重复(在这个过程中,处理通过id查找元素的IE错误),您可以看到它是如何加起来的。

我建议你阅读上面的参考资料,这样你就知道图书馆是如何做他们正在做的事情的(这不是魔法),但没有理由不利用人们所做的艰苦工作来让这些事情变得更容易。

我认为您需要的是AJAX。这是一种只需部分页面刷新即可联系服务器的方式。当我使用asp.net时,我不知道它是如何与php一起工作的,但这里有一个链接可能会有所帮助。

轮到Ajax了。您需要的是一种名为AJAX的技术。您可以在jQuery库中找到一些可用的东西,它提供了更容易使用Ajax的不同方法。

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

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

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

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