Javascript:有效地检查文本是否是完整的 HTML 文档

标签 javascript ajax optimization

我们的 Web 应用程序将作为具有 SSO 的系统的一部分进行部署。 session 超时后,我的 XmlHttpRequests 被重定向到登录页面,我们对此无法控制。

在每个 AJAX 响应处理程序上,我必须检查响应文本是否是完整的 HTML 页面。 (HTML 片段和 JSON 是有效的响应。)

我必须承认我对客户端技术还很陌生。我像这样捕获完整的 HTML 页面:

if (data.search(/<html>/) > -1) { ... }

我认为这是非常低效的,依赖于我们的约定,并且将来可能会引入细微的错误。 特别是考虑到那里有一个完整的网络浏览器,其主要目的是解析 HTML...

请分享更优雅的将文本识别为完整 HTML 文档的解决方案!

(项目中已经使用了JQuery。)

结束编辑:

我在选择接受一个答案时有点犹豫,因为解决方案似乎是评论中的两个想法的综合:

我将为 JSON 和 HTML 片段设置单独的验证器:

  • 在我期待 JSON 的地方,响应必须是 JSON。

  • 在我期待 HTML 片段(而不是完整文档)的地方,响应必须以结束标记结束(忽略空格),但不是(不区分大小写)。 SSO 登录页面必须以 结尾,我们将记录此“限制”。

感谢大家的贡献!

最佳答案

如果您想检查响应是否是一个完整的 HTML 页面,您可能想从末尾开始查看,不是吗?检查是否</html>最后并没有浪费太多性能。如果您不希望这样,请说明完整 HTML 页面的含义。

关于Javascript:有效地检查文本是否是完整的 HTML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6707047/

相关文章:

javascript - 在 javascript 中使用鼠标滚轮事件验证输入字段的问题

javascript - 如何使用serviceWorker缓存ajax响应

javascript - AJAX+Rails 点击处理程序未绑定(bind)

c# 并行与顺序

mysql - 压缩 Mysql 查询

javascript - 需要帮助编写一个函数来使网格内的任何框都可以点击并填充色轮

javascript - jQuery 悬停并检查链接是否被点击

javascript - 将所有文本区域限制为指定的字符数

javascript - 重新保护 JSON 响应的访问值

c++ - 为空间优化 tribools 数组