如何在不重新加载页面的情况下获取数据表单数据库
How to get data form database without reloading the page?
当用户提出任何问题时,我想制作一个faq面板,它显示在分区顶部,而无需重新加载页面。为此,我想每隔几秒钟就必须与数据库建立连接。现在的问题是,如何在不重新加载页面的情况下进行连接,以及如何显示新的问题?
您有两个选项:
-
Ajax,它允许您使用JavaScript从服务器检索数据,然后您可以使用JavaScript来操作DOM。Ajax的基础是
XMLHttpRequest
对象,它允许您在JavaScript中完全在后台检索数据。请注意,Ajax受到同源策略的限制,但就您所描述的内容而言,这很好—您将从同一来源加载数据。 -
框架(例如,
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
- 如何在不需要单击按钮的情况下获取选项的值
- 如何在没有回调的情况下获取有关元素的信息
- 在不使用sort()的情况下获取HTML LI元素的副本
- Javascript如何在不使用画布的情况下获取鼠标位置
- Javascript在没有jQuery的情况下获取X父节点
- Rails/JS-在不刷新页面的情况下获取变量
- jQuery在不刷新页面的情况下获取每个A标记的值
- 在没有jquery的情况下获取iframe中的特定内容
- AJAX/JS:是否可以在没有提交按钮和刷新页面的情况下获取输入文本的值
- 如何在不使用事件的情况下获取元素的 pageX 和 pageY
- 角度 - 在不使用 ng-repeat的情况下获取数据长度
- AngularJS:在不修改ng模型的情况下获取选择标签
- 我可以在没有对象函数调用的情况下获取(可能是计算的)属性值吗?
- 如何在选中数组复选框的情况下获取数组文本框的验证
- 索引数据库,如何在不重新加载页面的情况下获取更新的数据
- 如何在没有元素的情况下获取文件引用对象
- 如何在没有jQuery的情况下获取事件目标
- JavaScript:在没有画布的情况下获取 ImageData
- 在没有解析 JSON 的情况下获取高图表数据
- 如何在没有图像的情况下获取链接