当用户提出任何显示在分区顶部的问题时,我想制作一个常见问题解答面板,而无需重新加载页面,因为我认为我必须每隔几秒就与数据库建立连接。现在的问题是如何在不重新加载页面的情况下建立连接以及如何显示新问题?
您有两个选择:
Ajax,它允许您使用 JavaScript 从服务器检索数据,然后可以使用它来操作 DOM。 Ajax 的基础是XMLHttpRequest
对象,它允许您在 JavaScript 中完全在幕后检索数据。请注意,Ajax 受到以下限制:同源政策,但对于您所描述的内容来说,这很好 - 您将从同一来源加载数据。
框架(例如,iframe
元素),您可以通过设置它们来加载内容src
财产。
两者之中,Ajax 更加灵活。
参考资料/延伸阅读:
- DOM2核心
- DOM2 HTML
- DOM3核心
- HTML5 Web 应用程序 API
- XMLHttpRequest 对象
旁注:虽然显然你可以使用XMLHttpRequest
和直接的 DOM 方法,请注意,存在跨浏览器差异(以及彻底的错误),可以通过像这样的优秀库来为您消除这些差异jQuery, 原型, YUI, Closure, or 其他几个中的任何一个。它们还提供了许多有用的实用功能,使您能够专注于要解决的实际问题,而不是管道的细节。
例如,以下是如何使用 jQuery 向服务器发送 Ajax 请求,并使用服务器发回的 HTML 片段更新页面上的元素:
$("#target").load("get_the_data.php", {article: x});
也就是说:请求一个 HTML 片段get_the_data.php
向其发送参数article
的值来自x
变量,并将该 HTML 片段放入具有 HTML 的元素内id
“目标”。如果您不使用库,这 10 行代码就足够了。现在,这不是很多,但是一遍又一遍地重复(并在此过程中处理通过元素查找元素的 IE 错误)id
),然后你就会看到它是如何累加起来的。
我确实建议您阅读上面的参考资料,这样您就知道图书馆是如何做他们正在做的事情的(这不是魔法),但是没有理由不利用人们所做的辛勤工作来使这些事情变得更容易。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)