服务器端处理与客户端处理+ajax?

2024-02-12

寻找一些一般性建议和/或想法......

我正在创建一个我认为更像是一个网络应用程序而不是网页的东西,因为我想让它像一个 Gmail 应用程序,您可以让页面整天打开,同时将更新“推送”到页面(对于有兴趣我正在使用彗星编程技术)。我以前从未创建过如此丰富的 ajax 和 javascript 网页(我现在是 jquery 的忠实粉丝)。因此,当我一次又一次地实现一个需要服务器需要了解的 UI 动态更改的新功能时,我面临着同样的问题:

1)我应该在客户端上用javascript进行所有处理并通过ajax尽可能少地回发 或者 2)我应该通过ajax向服务器发送请求,让服务器完成所有处理,然后发回新的html。然后在 ajax 响应上我用新的 HTML 做了一个简单的分配

我一直倾向于遵循#1。我想这个网络应用程序可能会对所有 ajax 请求变得非常健谈。我的想法是尽可能减少请求和响应的大小,并依靠不断改进的 javascript 引擎来完成尽可能多的处理和 UI 更新。我发现使用 jquery 我可以在客户端做很多以前无法轻松完成的事情。我的 JavaScript 代码实际上比我的服务器端代码更大、更复杂。我还需要执行一些简单的计算,我也将其推送到客户端。

我想我的主要问题是,我们是否应该尽可能努力进行客户端处理而不是服务器端处理?我一直觉得服务器处理的事情越少,可扩展性/性能就越好。让客户端处理器的能力来完成所有艰苦的工作(如果可能的话)。

想法?


在决定是否应在服务器端或客户端构建由 ajax 请求创建的新 HTML 片段时,需要考虑几个因素。需要考虑的一些事项:

  • 表现。你的服务器必须做的工作就是你应该关心的。通过在客户端进行更多处理,可以减少服务器的工作量并加快速度。例如,如果服务器可以发送一小段 JSON 而不是巨大的 HTML 片段,那么让客户端执行此操作会更有效。在两种方式发送少量数据的情况下,差异可能可以忽略不计。

  • 可读性。在 JavaScript 中生成标记的缺点是阅读和维护代码更加困难。在语法着色设置为 JavaScript 的文本编辑器中,在带引号的字符串中嵌入 HTML 看起来很糟糕,并且使编辑变得更加困难。

  • 数据、表示和行为的分离。就可读性而言,在 JavaScript 中包含 HTML 片段对于代码组织来说没有多大意义。 HTML 模板应该处理标记,而 JavaScript 应该单独处理应用程序的行为。插入到页面中的 HTML 片段的内容与您的 JavaScript 代码无关,只与它的插入位置、插入时间相关。

出于上面提到的可读性和代码组织原因,在处理 ajax 响应时,我更倾向于从服务器返回 HTML 片段。当然,这一切都取决于您的应用程序如何工作、ajax 响应的处理强度以及应用程序获得的流量。如果服务器在生成这些响应时必须做大量工作并导致瓶颈,那么将工作推送给客户端并放弃其他考虑因素可能更重要。

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

服务器端处理与客户端处理+ajax? 的相关文章

  • 公共领域还好吗?

    在你像我最初那样做出直觉反应之前 请阅读整个问题 我知道它们让你感觉很脏 我知道我们以前都被烧伤过 我知道这不是 好风格 但是公共场所可以吗 我正在开发一个相当大规模的工程应用程序 该应用程序创建并使用结构的内存模型 从高层建筑到桥梁再到棚
  • 如何将值发布到输入框中?

    Intro I would like to get the current time after clicking at click and POST the value into input text box Note 假设包含引导样式表
  • 获取被调用的 javascript 文件的查询字符串

    是否可以在调用的 javascript 文件上使用 javascript 获取查询参数 如下所示 in html in file js console log this location query 这是否可能以某种方式实现 或者我必须使用
  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • 检查用户设备的 GPS 是否开启

    我正在使用 jQuery Mobile 和 PHP 开发一个应用程序 我没有使用 Phonegap 或其他框架 我需要找到用户的geolocation 如果用户设备的 GPS 关闭 那么我无法获取位置 现在我需要查找用户设备的 GPS 是否
  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • .points 不透明度/大小在三个.js 内

    我回来回答有关 points 的第二个问题 这次想知道如何将不透明度从 0 更改为 1 然后又回到距发射器的特定像素距离内 var particleCount 14 particles new THREE Geometry pMateria
  • 通过 JavaScript 单击按钮/页面提交

    我想了解 asp net 框架如何知道何时单击了按钮 因此一旦收到请求 就会在服务器上触发其单击事件 我需要了解它是如何工作的 因为我想从 JavaScript 触发按钮的服务器单击事件 我能够从 JavaScript 执行页面提交 doc
  • 如何显示接下来的三个图像单击加载更多按钮

    我需要一个加载更多按钮来显示图像 页面加载时 我显示 3 个图像 单击 加载更多 按钮后 接下来的 3 个图像将显示在屏幕上 我尝试了下面的代码 但它不起作用 你能帮我解决这个问题吗 function item slice 0 2 show
  • Chrome --app 相当于 Firefox\IE

    我有一个网络应用程序 客户要求单击不同按钮时更改浏览器窗口大小 我发现在那link https stackoverflow com questions 13436855 launch google chrome from the comma
  • 播放没有音频标签的音频

    是否可以在没有音频标签的情况下仅使用 javascript 播放音频 我通过 tinyMce 编辑器注入脚本 因为我无权访问网站的后端 并且它不支持客户端的音频标签 她只想要当您将鼠标悬停在图像上时发出简单的声音 我已经完成了所有设置 但是
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • Angular JS - 使服务可以从控制器和视图全局访问

    假设我们有以下服务 myApp factory FooService function 然后 从控制器中 我会说 myApp controller FooCtrl scope FooService function scope FooSer
  • 如何将MathJax公式转换为img

    Mathjax 现在在我的项目中运行良好 但有一个问题 有没有办法将MathJax的公式 纯html和css 转换成img文件 我可以保存 MathJax 可以配置为生成 SVG 看http docs mathjax org en late
  • Google Apps 脚本中 $.ajax() 的服务器端等效项是什么?

    我想在 Google App 脚本中从服务器端代码执行 HTTP 请求Authorization标头 是否有用于发送 HTTP 请求的 App Script API Google Apps 脚本中的这段代码相当于什么 var api URL
  • 如何在 React Native 中使用相同的 Firebase 数据库在两个应用程序之间进行通信?

    我有两个不同的应用程序使用相同的实时数据库 在第一个应用程序中 我发送的订单包含一些要保存在数据库中的数据字段 在另一个应用程序中 我只添加一个侦听器 firebase database ref userOrder currentUser
  • 如何在 TypeScript 中使用 navigation.replace ?

    我试图在我的代码中使用它 const navigation useNavigation navigation replace AllFriends 但我不断收到错误消息 Property replace does not exist on
  • jQuery Mobile + Admob:轮换?

    我使用 jQuery Mobile 框架创建了一个移动应用程序 所有页面都在index php中加载 使用 div 在每个页面的页脚中 我添加了Admob代码 div div div
  • 将 html 文本框的值分配给 div 的标题

    line 1
  • JavaScript 阶乘防止无穷大

    我一直在 JavaScript 中使用这个函数来计算阶乘数 var f function factorial n if n 0 n 1 return 1 if f n gt 0 return f n return f n factorial

随机推荐