客户端的web技术

Web 技术糅合了太多内容,  总的来说Server 和 Client 技术基本上不划分。 因此当PHP, J2EE, Pyth 纷扰这web世界的时候,  我们还能看到JQuary, Node.js, 还能看到Sql的阴魂不散.  很多人就开始深陷技术无法自拔。 这篇文章中。 您完全不用费神费力。 这一切都跟服务端技术没有多大关系。

1. 服务端仅仅提供接口数据。 比如通过一个POST请求,服务端把数据传给我们。 我们这里将采用JSON的格式【XML大娘的标签太罗嗦】

2. 客户端通过XMLHTTPRequest这个浏览器著名的实例, 和服务端交互, 然后把数据拿回来, JS能做到

3. 客户端开始通过DOM进行展示. 展示非常灵活, 你想把文本变成红的绿的, 都行, 同样JS也能做到

4. 很显然,  JS在处理请求的时候, 还处理了HTML的UI,  也就是逻辑和UI的揉合. 这里, 要给出解决方案, 让代码不那么糟糕, 因为我们还需要让别人看懂, 让别人维护.

环境准备:

    1. 服务端, 一个查单词的Server端应用. 非常简单, 下面的红色字体, 就是输入单词的部分, 其他的几个参数, 先忽视吧!

     http://dictionary.duapp.com/q?method=queryword&word=future&type=1_00&name=test&pwd=test

    当然你可以修改为其它任意的单词, 这个也将是我们后面会提供的内容。

    http://dictionary.duapp.com/q?method=queryword&word=have&type=1_00&name=test&pwd=test

    如果您一直关注我的博客, 显然, 这是【凡尘英语】部署的一个应用. 当然你无需关注,  我们这里是关注客户端的技术, 千万别迷恋服务端! 否则你会离题太远!

    另外温馨提示一下, 千万别拿我这个接口来做其他的事情, 因为我一段时间之后, 我会将这个接口封闭。 你完全可以部署一个免费的服务端应用。 这里可以帮你找到一些线索:

      百度的 java BAE, 建立一个Java Servlet为主要技术的应用. 

    2. 客户端. 组装一个POST请求, 对返回的字段进行解析, 将其嵌入到我们的HTML5的各种标签中, 以第一个链接请求future的查询为例:

    {"key":"future","pron":"ˈfju:tʃə---ˈfjutʃɚ---","meanings":[{"type":"adj.","trans":"将来的,未来的;[语法学]将来时的;"},{"type":"n.","trans":"前途;[美国俚语]未婚妻;期货;"}],"shorts":"[for the
future, in future, in the future]","usages":[{"eng":"I am on my way to future, where you are there.","cn":"我要去有你的未来","type":-1,"remark":"优美英文"},{"eng":"If my future has you in it, I'm not afraid of the rest.","cn":"如果我的未来有你在,那其他的什么我都不怕了。","type":-1,"remark":"优美英文"},{"eng":"Every
hour of lost time is a chance of future misfortune.","cn":"一寸光阴一寸金,寸金难买寸光阴。","type":-1,"remark":"优美英文"},{"eng":"We'd better struggle for the future rather than regret for the past.","cn":"后悔过去,不如奋斗将来。","type":-1,"remark":"优美英文"}]}

目标:

1. 生成两个页面, 将上述JSon数据进行展示

2.  分离UI处理和逻辑处理, 采用先分层、后模块化的方式.  保证框架代码的容易维护

特别提醒:

1. 由于存在跨域问题, 所以, 本文的客户端代码和服务端代码需要共同部署在同一个服务器上.

2.  我们Sevlet转发的方式, 将dictionary.duapp.com的查询, 转迁到student.duapp.com上去. 当然, 我们建议你也这么做. 代码很简单, 提供如下:

[java] view plaincopy

  1.     private String getHttpContent(String rometURL, String encoding)  
  2.     {  
  3.         try {  
  4.              URL url = new URL (rometURL);  
  5.                 URLConnection uc = url.openConnection();  
  6.                 uc.setRequestProperty  ("Authorization", "Basic " + encoding);  
  7.                 uc.setRequestProperty("User-Agent", "Mozilla/5.0");  
  8.                     
  9.                 InputStream content = (InputStream)uc.getInputStream();  
  10.                 BufferedReader in = new BufferedReader (new InputStreamReader (content,encoding));  
  11.                 StringBuffer buffer = new StringBuffer();  
  12.                 while (in.ready()) {  
  13.                     String inString = in.readLine().trim();  
  14.                     if (inString.length() != 0)  
  15.                     {  
  16.                         buffer.append(inString);  
  17.                     }  
  18.                 }  
  19.                 return buffer.toString();  
  20.         } catch (Exception e) {  
  21.         }  
  22.        return null;  
  23.     }  
  24.       
  25.     @Override  
  26.     protected void service(HttpServletRequest req, HttpServletResponse resp)  
  27.             throws ServletException, IOException {  
  28.         // TODO Auto-generated method stub  
  29. //      super.doGet(req, resp);  
  30.         String partA = "http://dictionary.duapp.com/q?method=queryword&word=";  
  31.         String partB = "&type=1_00&name=test&pwd=test";  
  32.         String content = getHttpContent(partA + "about" + partB, "utf-8");  
  33.         resp.setContentType("text/plain");  
  34.         resp.setCharacterEncoding("utf-8");  
  35.         resp.getWriter().println(content);  
  36.     }  

这样转接代理服务完成.

接下来要做的工作, 就是显示一个页面: 测试链接如下:

Ajax测试链接

可以输入任意单词进行测试

js源码

时间: 2024-08-03 08:19:47

客户端的web技术的相关文章

Angular 2:Web技术发展的必然选择

小编说:中秋之际(9月15日),谷歌正式发布了 Angular 2 的最终版,成为Angular 1 的全平台继任者. 在Angular 2 剧烈变更以及缺乏向下兼容性的背后,主要的推动力是web 技术的演进以及来自于AngularJS 1.x 的经验教训.本文节选自<迈向Angular 2>一书,此书基于对Angular 2架构和设计方面的深入理解,带你快速转入Angular 2的全新世界,降低Angular 2学习曲线. 在本文中,我们将着重讨论为何Web 的进化和前端开发的变革会促使An

【智能合约】客户端和web端对智能合约的事件Event进行调用的代码示例

客户端和web端对智能合约的事件Event进行调用的代码示例 web truffle 按官网的例子 http://truffleframework.com/boxes/pet-shop truffle作为一个运行测试框架,用的也是web3对智能合约进行调用. 文件所在的位置src/js/app.js initWeb3: function() { // web3入口 if (typeof web3 !== 'undefined') { App.web3Provider = web3.current

java web技术需要从服务器端数据库中下载数据到本地

问题描述 由于是web技术所以代码也要放在服务器上.客户端运行一个网页的时候,后台自动运行从服务器端的数据库中把数据写到本地的txt文本文件中.细节要求是按照日期判断同一天的数据是一个txt.隔天自动生成另一个txt..格式要求数据能自动换行求完成代码..加注解....万分感谢 解决方案 解决方案二:我晕...没人知道啊...高手哪去啦....解决方案三:我晕.没人知道啊..高手哪去了解决方案四:我晕.没人知道啊..高手哪去了

持续发力Web技术 英特尔驱动万物智能互联

英特尔Web技术媒体沟通会今天举行,展示了英特尔在Web技术方面的最新成果.当下,云和数据中心.物联网.存储.FPGA以及5G形成增长的良性循环,带来前所未有的创新机遇,英特尔借助增长的良性循环,不断突破科技疆界,驱动万物智能互联.在这一使命的指引下,英特尔软件与服务事业部立于科技前沿,持续带来创新成果,为合作伙伴提供创新基础,并有力推动着中国的"大众创业万众创新"进程,这次媒体沟通会进行了充分而生动的展示. 面向WebRTC的英特尔协同通信开发套件(Intel Collaborati

2011年使用率增长最快的十大Web技术

中介交易 SEO诊断 淘宝客 云主机 技术大厅 W3techs网站评出了2011年十大使用增速最快的Web技术,本文对其进行编译供各位参考.注意,该评选结果是在针对前100万流行网站(根据Alexa值统计)进行调查统计出的,点击这里查看详细统计信息. 以下是2011年前100万流行网站中使用率增长最多的10大Web技术. 1. jQuery jQuery在前100万流行网站选择中新增了惊人的145 300个名额.也就是,在过去的一年中,每天都有398个网站开始使用它.jQuery目前在所有网站中

客户端提高WEB页面显示速度的方法(1)

web|客户端|速度|显示|页面 客户端提高WEB页面的显示速度,对客户端浏览器来说,就是要把获得Html代码,尽快地显示出来,而不是要等剩余的Html都接受到了后,才显示出来. Html 中的Table 标签 必须整个Table 的内容都接受完毕,才可以显示出来. 如果这时候服务器响应速度不快,就会看到一个页面打开需要很久.其实这之间已经下载了不少内容.只是由于一些标签中的内容没下载完毕,无法显示而已,这样如果网络带宽又不好,给用户的体验会很不爽. 我关注的一个文学网站,用 JavaScrip

MDN Web 技术文档 - JavaScript Strict mode

MDN Web 技术文档 - JavaScript Strict mode 在 JavaScript 1.8.5 引入         ECMAScript 5的严格模式是Javascript中的一种限制性更强的变种方式.严格模式不是一个子集:它在语义上与正常代码有着特意的差异.不支持严格模式的浏览器与同支持严格模式的浏览器行为上也不一样, 所以不要在未经严格模式特性测试情况下使用严格模式.严格模式可以与非严格模式共存,所以脚本可以逐渐的选择性加入严格模式.         严格模式在语义上与正

qt5-大家好,我想用QT当客户端,web当服务器。请问如何保存登录状态

问题描述 大家好,我想用QT当客户端,web当服务器.请问如何保存登录状态 QT是没session的的.我服务器是 tomcat.如何安全的保存账号密码 解决方案 客户端发送socket,建立长连接. 解决方案二: tomcat啊,没有 socket HTTP协议啊

中国用户已经无法通过客户端和Web网页访问Dropbox

昨天下午,世界上最伟大的云存储服务之一--Dropbox被证实无法从中国地区访问,客户端和网站均无法正常连接和登录,我先前曾经多次推荐过这个伟大的服务,没想到这么快Dropbox也被封了-- 最近DropBox忽然成了一个小小的热点,就我视野所及,有两个名博写了关于它的博文,一篇是月光的,Dropbox的运营模式分析,一篇是阮一峰的,他把dropbox官方的一个ppt翻译成了中文:Dropbox 的创业经历.我也用这个东东,不过我不太记得是什么时候开始用的,大概是去年吧.我在我的blog侧边栏挂