当前位置: 首页 > 面试题库 >

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

颜实
2023-03-14
问题内容

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


问题答案:

您有两种选择:

  1. Ajax,它允许您使用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});

就是说:请求一个HTML片段,get_the_data.php将参数articlex变量值一起发送给它,然后将该HTML片段放入具有HTML
id“目标”的元素中。如果您不使用库,那将是十行不错的代码。现在,这不是很多,但要反复重复(并在此过程中,通过IE查找围绕元素的IE错误id),您将了解如何将其累加。

我确实建议您阅读上面的参考资料,以便您知道库是如何做的(这不是魔术),但是没有理由不利用人们所做的辛勤工作来简化这些工作。



 类似资料:
  • 我有一个用户名列表,用户名列表根据用户输入的数量而增加。问题是,当用户输入用户名时,列表会被输入填充,只有当我的页面重新加载时,我的页面才会更新。这是我迄今为止尝试过的代码。 我无法在外页重新加载的情况下更新数据。请建议我如何更新ui:在外页重新加载的情况下重复数据。提前谢谢。

  • 在我的网站,我正在尝试加载产品项目而不刷新整个页面。我通过和设法做到了这一点。然而我遇到了一个问题。产品项包含单个图像。但由于我将间隔设置为3秒,它会重新下载所有需要的资源,我认为这是一个问题,因为连接速度慢的用户会感到恼火。我在开发工具上模拟了一个慢速连接,只是想看看会发生什么。 这就是结果。重新加载图像或整个product_item页面需要时间。 这是我的密码 现在我想知道什么是高效加载数据的

  • 本文向大家介绍如何在不丢失HTML表单数据的情况下重新加载当前页面?,包括了如何在不丢失HTML表单数据的情况下重新加载当前页面?的使用技巧和注意事项,需要的朋友参考一下 重新加载当前页面而又不丢失表单数据的最简单方法是使用WebStorage,在该存储中,-永久存储(localStorage)或基于会话的(sessionStorage)会保留在内存中,直到关闭Web浏览器为止。 当页面即将重新加

  • 问题内容: 我可以重新加载当前页面而不丢失任何表单数据吗?我用了.. 和 但是这两件事对我来说无法获得早期的表格数据。怎么了 ?手动刷新浏览器时,一切正常(我不会丢失任何表单数据)。请指导我如何解决。 这是我的完整代码… 并在我的JS文件中。 问题答案: 您可以使用各种本地存储机制在浏览器中存储此数据,例如Web Storage,IndexedDB,WebSQL(不建议使用)和File API(不

  • 问题内容: 有没有办法可以在不重新加载页面的情况下修改当前页面的URL? 如果可能,我想访问#哈希 之前 的部分。 我只需要更改域 后 的部分,所以就好像我没有违反跨域策略一样。 问题答案: 现在,可以在Chrome,Safari,Firefox 4+和Internet Explorer 10pp4 +中完成此操作! 例: 然后,您可以用来检测后退/前进按钮的导航:

  • 我在我的应用程序中使用CloudKit作为远程保存数据的一种方式。我的一个记录具有保存图像的CKAsset属性。当我获取记录时,我意识到完成查询要花很多时间。经过多次测试,我得出结论,当您查询记录时,CloutKit会用record对象下载整个资产文件。因此,当您从record对象获取资产并请求它的fileURL时,它会给您一个本地文件路径URL,而不是HTTP类型的URL。这对我来说是一个问题,