我已经开发了我的第一个基于Web的应用程序大约两个月了(我是一名大学生,他主要经历过C和Python,并且引入了一些Java)。到目前为止,我的页面工作为一个瘦的HTML布局(瘦的意思是一个非常简单的布局,也就是少于50行的HTML),它主要由AJAX操纵,主要使用jQuery。 AJAX是通过生成的。 PHP结合SQL操作。这个webapp将被最多6-10个客户端(编辑:用户)使用,跨浏览器兼容性只是一个奖励;似乎IE7是最薄弱的环节。
我想知道:
我正试图取得平衡,似乎我到目前为止所阅读的所有内容都缺乏平衡的视角,只是推动AJAX作为最终目标而全部。
答案 0 :(得分:2)
在业界,Ajax和客户端编程的使用是作为GUI或可用性工具的生产力和可维护性问题。 有时候(特别是在MVC服务器环境中)只能获得比所有内容更多的内容。但这几乎是观点的问题
我会尝试回答你的3个问题,只记得我在某种意义上就像你一样,我认为许多文章或书籍都缺乏平衡(显然,我也是):
对我而言,在客户端上使用繁重的javascript(例如在JS中构建所有GUI)与从服务器提供HTML页面的主要缺点是缺乏控制,你可以克服错误,很少的图形错误,环境差异等等你最终表现得像一个分发桌面应用程序的软件供应商,你无法真正控制客户端的可用性。 当然,使用浏览器激动框架(如jQuery)并在许多环境中运行渲染测试,这个缺点几乎可以完全挣扎。 您应该尝试这两种技术,使用Ajax并不总是最好的,它有时可以挽救您的生命(构建一个具有多个选择的动态树和仅有HTML的数百万个分支)。 我一般我应用这个规则:如果用户更改屏幕(即列表和表单之间)我重新加载整个页面,如果不是我使用Ajax。
我必须不同意,在网络开发中,客户端脚本仍会继续用于GUI的东西,除了离线网络解决方案(如Gears)之外,浏览器没有理由嵌入数据库或硬业务逻辑。 业务层对我们来说太重要了,依靠浏览器来处理它。数据存储位于同一位置(对我而言)必须保留在服务器上。 这种关注点的分离在我的日常工作中,我认为这些巨大的责任永远不会被委托给浏览器,存在太多的不安全感,不兼容性,错误问题。
服务器端在我下面提到的所有阶段都会闪耀,但对于数据传输格式,我更喜欢直接将HTML传输到浏览器或使用JSON来传递我需要传递的任何其他结构化数据。对于轻量级客户端来说,使用XML似乎有点冗长。如果你可以避免使用iframe,那么我没有理由在99.9%的情况下使用它们。
作为结论,你是学生,学习有趣的东西。如果你更喜欢在客户端提高你的知识,那么这里有很多需要学习的东西(HTML解析器,DOM和JS apis,浏览器内部对我来说真的很有用)。
但是你必须知道我曾经为之工作过的企业,网络有两个含义:沟通和对业务应用程序GUI的支持。我目前在Web应用程序(Intranet)工作,我们是3个前端开发人员在做PHP和javascript,而有20个人在做服务器端Java。只是为了给你GUI在专业大型应用程序中的位置。