页面加载时使用 AJAX 不是一件坏事吗?

2024-01-19

我在上面看到过这个书呆子晚餐 http://nerddinner.codeplex.com和其他网站。页面加载时(在 JavaScript 中,通过浏览器),将发出 AJAX 请求,从呈现初始页面的同一服务器获取一些数据。数据会很小,并且不存在会阻止他们从一开始就提取这些数据的技术限制。

这不是一件坏事吗?这似乎是对 AJAX 调用的浪费,因为他们可以将此数据与页面的其余部分一起呈现为 JavaScript。

我的银行使用 AJAX 提取信息来构建“转账资金”表单的表单元素。该信息有几千字节,AJAX 请求似乎有点过大。

在书呆子的晚餐上,至少在MIX09视频 http://videos.visitmix.com/MIX09/T49F我看到,他们正在查询(通过 AJAX)一组晚餐,以便在页面加载时在地图控件上呈现。

如果我们谈论的是大量数据,否则需要很长时间才能提取,我可以理解,但如果数据低于 10-15kb,那么使用标记提取数据不是更好吗?他们这样做是为了避免缓存数据吗?

编辑:我的建议是,不要打开对服务器的 AJAX 调用来在客户端加载上拉取 json 数据,只需让 asp.net (或其他)在渲染其他所有内容时在页面内容中渲染 json 。我只是觉得有必要指出这一点,因为除了 json 变量的来源之外,实际的客户端代码将完全相同。


一般来说,根据我的经验,您希望尽可能避免页面上出现任何 JavaScript。我的意思是,如果你可以在服务器端而不是使用 Javascript 来完成它,那么你应该这样做。您的页面加载速度会更快,并且您将获得更好的用户体验。

有时这可能需要更多工作,特别是如果稍后在页面期间使用相同的加载 AJAX 调用。您可能会通过在服务器端执行来复制代码。因此,在性能和要编写的代码量之间需要进行权衡。

另一方面是,Javascript 有时用于防御机器人、抓取工具、恶意软件(如密钥嗅探器等)等,以确保您和网站的安全。例如,这可能意味着使用 Javascript 加载页面元素,因为这使得破解或抓取变得更加困难。对你来说并非不可能,只是更难。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

页面加载时使用 AJAX 不是一件坏事吗? 的相关文章

  • 将 Regex 对象分配给 html 输入模式

    我需要以编程方式将正则表达式对象分配给输入元素模式属性 以下是我当前的实现 var regex d 5 element attr pattern regex toString slice 1 1 有没有更好的方法来做到这一点而不需要字符串操
  • 在节点环境中存根 jQuery.ajax (jQuery 2.x)

    我正在尝试运行一些需要存根的测试jQuery ajax 我正在使用 SinonJS 来做到这一点 它曾经与旧版本的 jQuery 1 x 一起工作得很好 var require jquery var sinon require sinon
  • JavaScript 字符串中的脚本标签[重复]

    这个问题在这里已经有答案了 我遇到一个问题 即 JavaScript 中带引号的字符串内有结束脚本标记 并且它正在杀死脚本 我认为这不是预期的行为 可以在这里看到这样的示例 http jsbin com oqepe edit http js
  • 获取被调用的 javascript 文件的查询字符串

    是否可以在调用的 javascript 文件上使用 javascript 获取查询参数 如下所示 in html in file js console log this location query 这是否可能以某种方式实现 或者我必须使用
  • Javascript 对象属性名称

    在 C 中 可以将对象属性的名称作为字符串值获取 名称 对象 Property gt myProperty 这可以在 Javascript Typescript 中完成吗 Object Keys 是我找到的唯一东西 但它给了我所有的键 示例
  • jQuery:查找具有特定自定义属性的元素

    我只想找到具有特定自定义属性值的元素 例如 我想找一个div其具有属性data divNumber 6 var number 6 var myDiv data divNumber number 我尝试使用http api jquery co
  • 判断字符串是否包含有效的javascript代码

    我正在寻找一个C 返回的函数true如果字符串包含有效的 JavaScript 语法 例如 IsValidJavascript alert hello 会回来true but IsValidJavascript alertXXhelloZ
  • 如何将 Ajax.BeginForm MVC 助手与 JSON 结果一起使用?

    我正在尝试使用 ASP NET MVC Ajax BeginForm 帮助程序 但不想在调用完成时使用现有的内容插入选项 相反 我想使用自定义 JavaScript 函数作为回调 这可行 但我想要的结果应该以 JSON 形式返回 不幸的是
  • UpdatePanel 破坏 JQuery 脚本

    这是我想做的事情的简化版本 基本上我有一个数据列表 里面有很多东西 当你将鼠标悬停在数据列表中的项目上时 我希望 jquery 隐藏 显示东西 问题是 在我进行数据绑定后 如果 gridview repeater datalist 位于更新
  • 如何通过setTimeout函数定期打印数字?

    var i 0 function counter for i i lt 100 i setTimeout gt console log i 2000 counter 我想以 2 秒的间隔打印 i 但它立即打印 每次打印调用只需要几微秒 为什
  • 检查用户设备的 GPS 是否开启

    我正在使用 jQuery Mobile 和 PHP 开发一个应用程序 我没有使用 Phonegap 或其他框架 我需要找到用户的geolocation 如果用户设备的 GPS 关闭 那么我无法获取位置 现在我需要查找用户设备的 GPS 是否
  • 使用 float:left 与 display:inline-block 的 jQuery UI 拖放排序比较

    我这里有两个例子 这两个例子之间的唯一区别是 一种使用display inline block 另一种使用float left li doc item 显示 内联块 与 li doc item float left 我的问题是 displa
  • Chrome --app 相当于 Firefox\IE

    我有一个网络应用程序 客户要求单击不同按钮时更改浏览器窗口大小 我发现在那link https stackoverflow com questions 13436855 launch google chrome from the comma
  • 可以禁用幻灯片的触摸模拟但不能禁用滚动条(危险的滑动器)吗?

    我的页面上有一个危险的滑动器 它成功地模拟了幻灯片和随附滚动条上的触摸事件 允许单击鼠标并移动以向左或向右滑动幻灯片 这很好 但我现在在滑动器内的幻灯片上调用了可拖动 这意味着我需要停止此触摸模拟 拖动幻灯片并同时移动它们会引起混乱 但仅限
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • node.js 模块/导出系统:是否可以将模块导出为函数

    我想在 Dispatch js 中做这样的事情 function handle msg exports handle 这在调用index js中 var dispatch require Dispatch dispatch data 有任何
  • Svelte 条件元素类报告为语法错误

    我正在做一个if块每if 块的精简指南 https svelte technology guide if blocks 这看起来很简单 但 Svelte 认为这是一个语法错误 svelte plugin ParseError Unexpec
  • 为什么 call 比 apply 快那么多?

    我想知道是否有人知道why call比apply 在 Chrome 中 速度大约快 4 倍 在 Firefox 中快 30 倍 我什至可以制作自定义原型 apply2 在大多数情况下 运行速度是apply 这个想法取自角度 Function
  • Google 地图 API - 地图未显示 - 没有错误

    我正在尝试将地图从 Google API 加载到 div 中 但是 地图未加载 并且没有输出任何错误 这是代码 google maps var geocoder map function codeAddress address geocod
  • Vue - 调度完成后调用 store getter?

    我正在使用 Laravel 5 7 Vue2 Vuex 我在调度调用完成后让 Vue 返回存储值时遇到一些困难 我的申请流程如下 我单击一个提交按钮 该按钮调用组件上的 validate Validate 分派到我的 addLease 操作

随机推荐

  • Jquery - 动画innerHTML 可能吗?

    我试图有一个函数来执行 setTimeout 然后更改innerHTML Question 我如何为出现的新文本设置动画 即逐行而不是一次全部写入 感谢您的任何建议 尝试这样的事情 div div document ready
  • 如何使用valist从C调用java vararg方法

    我有带有可变参数的 C 方法 void message int id 它应该使用 vararg 调用 Java 静态方法 public static void message String messageName String args 我
  • 不断增长的 Amazon EBS 卷大小 [已关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 亚马逊的 EC2 和 EBS 服务给我留下了深刻的印象 我想知道是否可以增加 EBS 卷 例如 如果我有 50 GB 的卷 但空间开始不足 我可以在需
  • C++ 内存中键值存储

    我正在寻找有关具有 C 接口或用 C 编写的内存中键值存储引擎或库的建议 我正在寻找可以毫无问题地扩展到大约 100mill 个键值对并且在 Linux 和 win32 64 上兼容 编译的解决方案 怎么样std map http cplu
  • R list() 的 Python 等效项

    R 的 list 也允许标记元素 Python 中是否有等效的方法来实现以下功能 list prob topTalent name Roger Python 文档位于https docs python org 3 tutorial intr
  • 如何查看给定 iOS ipa 文件中定义的 NSString

    我记得我以前做过这个 但忘记了命令 e g 我在源代码中定义了一个 NSString 例如 NSString s secret 我记得我可以使用以下命令查看内容strings命令 但我忘记了查看它的确切命令 e g strings my i
  • 1064, “您的 SQL 语法有错误;...” Python MySQL

    所以我从上周五开始就一直在研究这个问题 但无法解决这个错误 第1064章 你的SQL语法有错误 检查手册 与您的 MySQL 服务器版本相对应 以便使用正确的语法 第 1 行的 u 161010 035670 WHERE order id
  • 必填字段验证器未触发

    我在使用具有 TextBox 和 requiredFieldValidator 的标准 ASP NET 页面时遇到问题 重现的步骤非常简单 在页面上放置一个文本框 在页面上放置一个RequiredFieldValidator 将Requir
  • 如何使 Tab 页的宽度适合 TabControl 的宽度

    我有一个带有两个选项卡页的 TabControl 如何使选项卡页适合 TabControl 的宽度 如下面的屏幕截图所示 我尝试使用以下代码行 但它也不起作用 tabControl1 SizeMode TabSizeMode FillToR
  • Java:检测变量是字符串还是整数

    我正在为我的一些家庭作业寻求一些帮助 我希望用户输入一个数字字符串 然后将其转换为整数 但我想创建一个循环来检测用户是否输入了错误的值 例如 一百 而不是 100 我的想法是做这样的事情 do numStr JOptionPane show
  • Swift 对具有多个排序标准的数组进行排序[重复]

    这个问题在这里已经有答案了 Swift 中如何按多个条件对数组进行排序 例如 字典数组如下所示 items item itemA status 0 category B item itemB status 1 category C item
  • 使用自定义图标进行 Google 地图标记定位

    我遇到一个问题 带有自定义图标的标记似乎显示在地图上略有不同的点 具体取决于缩放级别 我以前使用过带有自定义图标的标记 所以我不知道我做错了什么 您会看到 最初标记看起来像是位于道路上 但如果缩小两次 它看起来就像在上面 如果放大两次 它看
  • GAE Blobstore 类文件 API 弃用时间表(py 2.7 运行时)

    这是 App Engine 团队的问题 上周我们意识到 App Engine 团队已将用于写入和读取 blobstore 的类文件 API 标记为已弃用 并且将来可能会被删除 我们有相当多的基础设施依赖于该 API 现在我们需要移植到他们建
  • 在python 3.6中导入tensorflow时出现非法指令:4

    我安装了macOS 上的张量流 https www tensorflow org install install mac使用 Virtualenv 一切顺利 成功安装了 6 1 11 0 tensorflow 1 6 0 是终端的最后一个输
  • 尝试呈现一个 UIViewController,其视图不在窗口层次结构中

    我有一个具有以下层次结构的多视图应用程序 启动 gt 导航控制器 gt 表视图控制器 gt 设置视图控制器 Splash 是应用程序入口点 因此成为根视图控制器 当我尝试通过设置视图控制器上的操作将图块添加到带区时 我收到调试器警告 app
  • 传单 GeoJSON 显示

    我遇到了一个任务 需要使用 leaflet js 库和 geojson 作为数据存储 几乎立即 遇到了以下问题 从 geojson 对象创建的多边形不显示在地图上 而由本机传单方法创建的多边形则完美地工作 这是我的代码 var map ne
  • 自编译 Roslyn 构建性能:不如最初发布的 Roslyn 版本快

    用一句话来形容我在做什么 检查分支Update 1来自罗斯林 github 存储库 https github com dotnet roslyn git 构建 csc exe 并使用我刚刚自己构建的 csc exe 版本编译随机解决方案 预
  • Pandas 的 ValueError - 传递值的形状

    我正在尝试使用 Pandas 和 PyODBC 从 SQL Server 视图中提取内容并将内容转储到 Excel 文件中 但是 在转储数据帧时出现错误 我可以打印列和数据帧内容 ValueError Shape of passed val
  • Eclipse 中的调试:无断点的变量快照

    我正在 Eclipse 中调试 Java 程序 我想观察一个特定的变量 但是 由于我的程序使用 GUI 因此创建断点会导致窗口冻结 例如 这尤其令人烦恼 尝试右键单击某个项目并导航上下文菜单 我实际上并不想停止程序 我只是想观察一个特定的变
  • 页面加载时使用 AJAX 不是一件坏事吗?

    我在上面看到过这个书呆子晚餐 http nerddinner codeplex com和其他网站 页面加载时 在 JavaScript 中 通过浏览器 将发出 AJAX 请求 从呈现初始页面的同一服务器获取一些数据 数据会很小 并且不存在会