- 浏览: 1464573 次
- 性别:
- 来自: 青岛人在北京
文章分类
最新评论
-
yhxf_ie:
azheng270 写道 永远是0知道答案了, inser ...
使用MySQL的LAST_INSERT_ID -
yhxf_ie:
insert了还是0... 可能还要设置些什么?
使用MySQL的LAST_INSERT_ID -
一如年少:
123123
Flex使用ribbit.com的服务给手机发送短信SMS -
pointdew:
poincare 写道您好,请教一个问题,如果我的 swf 文 ...
Flex:使用FlexPaper显示PDF文档 -
pointdew:
swf远程加载问题 : flexpaper无法加载http方式 ...
Flex:使用FlexPaper显示PDF文档
项目里原来有一段ajax的应用,功能很简单,控制几个页面元素,加上一个后台提交,代码如下:
js 代码
- var xRequest;
- function createXMLHttpRequest() {
- var xHttpRequest = false;
- try {
- xHttpRequest = new XMLHttpRequest();
- } catch (trymicrosoft) {
- try {
- xHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (othermicrosoft) {
- try {
- xHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
- } catch (failed) {
- xHttpRequest = false;
- }
- }
- }
- if (!xHttpRequest) {
- alert("Error initializing XMLHttpRequest!");
- }
- return xHttpRequest;
- }
- function editPartnerSite() {
- var img = document.getElementById("partnerSiteImg");
- img.setAttribute("src", "/partneradmin/image/save.gif");
- img.onclick = savePartnerSite;
- var label = document.getElementById("partnerSiteStr");
- var txtInput = document.createElement("input");
- txtInput.id = "partnerSiteInput";
- txtInput.type = "text";
- txtInput.value = label.firstChild.nodeValue;
- var parentNode = label.parentNode;
- parentNode.replaceChild(txtInput, label);
- }
- function savePartnerSite() {
- var txtInput = document.getElementById("partnerSiteInput");
- var newSiteStr = txtInput.value;
- txtInput.disabled = "disabled";
- var img = document.getElementById("partnerSiteImg");
- img.setAttribute("src", "/partneradmin/image/wait.gif");
- img.onclick = "";
- xRequest = createXMLHttpRequest();
- var saveSiteUrl = "/partneradmin/PartnerSet.do?method=savePartnerSite&newsite=" + escape(newSiteStr);
- xRequest.open("GET", saveSiteUrl, true);
- xRequest.onreadystatechange = rebuildPartnerSite;
- xRequest.send(null);
- }
- function rebuildPartnerSite() {
- var request = xRequest;
- if (request.readyState == 4) {
- if (request.status == 200) {
- var result = request.responseText;
- //if (result) {
- var txtInput = document.getElementById("partnerSiteInput");
- var label = document.createElement("label");
- label.id = "partnerSiteStr";
- label.appendChild(document.createTextNode(txtInput.value));
- var parentNode = txtInput.parentNode;
- parentNode.replaceChild(label, txtInput);
- var img = document.getElementById("partnerSiteImg");
- img.setAttribute("src", "/partneradmin/image/edit.gif");
- img.onclick = editPartnerSite;
- //} else {
- //}
- } else if (request.status == 404) {
- alert("Request URL does not exist");
- } else {
- alert("Error: status code is " + request.status);
- }
- }
- }
这几天看了prototype,决定把这段程序改善一下,完成后如下:
js 代码
- window.onload = function(){
- Element.hide('emailInput');
- Element.hide('partnerSiteInput');
- }
- function editPartnerSite() {
- $('partnerSiteInput').value = $('partnerSiteStr').innerHTML;
- Element.hide('partnerSiteStr');
- Element.show('partnerSiteInput');
- var img = $('partnerSiteImg');
- img.src = '/partneradmin/image/save.gif';
- img.onclick = savePartnerSite;
- }
- function savePartnerSite() {
- $('partnerSiteImg').src = '/partneradmin/image/loading.gif';
- var url = "/partneradmin/PartnerSet.do";
- var pars = 'method=savePartnerSite&newsite=' + escape($('partnerSiteInput').value);
- var mailAjax = new Ajax.Request(
- url,
- {
- method: 'get',
- parameters: pars,
- onComplete: rebuildPartnerSite
- }
- );
- }
- function rebuildPartnerSite(originalRequest) {
- $('partnerSiteStr').innerHTML = originalRequest.responseText;
- Element.show('partnerSiteStr');
- Element.hide('partnerSiteInput');
- var emailImg = $('partnerSiteImg');
- emailImg.src = "/partneradmin/image/edit.gif";
- emailImg.onclick = editPartnerSite;
- }
使用prototype后,代码行数缩少了近50%,理解起来也更清晰.还有一个 jQuery 的框架,据说比prototype还牛,最近要跟YUI整合.
相关连接
发表评论
-
Google JavaScript 代码规范
2010-10-23 17:56 3255Google JavaScript Style Guide ... -
22个Web富文本编辑器 Rich-Text Editors
2010-02-04 12:16 37841. TinyMCE http://tinymce.moxie ... -
配置整合DWR3.0和Spring2.5使用annotation注解
2009-06-16 19:42 11324这里使用 DWR3.rc1, Spring2.5 and Sp ... -
js关闭浏览器 (不弹出提示框)
2008-08-11 15:11 6600使用IE7,关闭浏览器时,会弹出一个提示框 解决方法: f ... -
javascript的onbeforeunload事件
2008-06-19 18:01 4952javascript的onbeforeunload 事件 ... -
一个好看的Calendar日历控件
2008-03-07 18:28 5596一个好看的Calendar日历控件 http://sotak. ... -
tablesorter 表格排序控件
2008-03-07 15:35 2429table 排序控件,支持多种数据 http://tables ... -
HTML and Javascript Library site
2008-03-06 15:23 1303http://www.dynamicdrive.com/ h ... -
Tooltip JavaScript Library 控件
2008-03-06 14:47 1637http://www.walterzorn.com/tool ... -
Autosuggest (Autocomplete) 控件 (转)
2008-02-23 22:53 2577一个Ajax的 Autosuggest (Autocomple ... -
Yahoo! Media Player 播放 MP3
2008-01-09 13:54 2204想在web中播放 mp3音乐 ? 使用Yahoo! Media ... -
Menu样式(转)
2007-12-04 14:41 2913这里列出了很多菜单样式 http://www.cssplay. ... -
解决ajax加载的javascript不被执行的问题
2007-11-23 23:38 4095用ajax 加载的页面如果带javascript,在IE中不被 ... -
img标签动态请求图片
2007-11-15 14:33 4597html的img标签是很常见的,一般的应用是 xml 代码 ... -
解决jQuery1.1 Ajax请求时cache的问题
2007-10-27 15:56 10272项目里使用jQuery 1.1.3.1版本,遇到的问题是jQu ... -
FireFox和IE浏览器的调试工具(插件)
2007-10-22 14:22 6536FireFox 插件Firebug http://www.ge ... -
Ajax 弹出窗口插件
2007-10-09 18:02 5984prototype的popup window插件 http: ... -
XMLHttpRequest 如何处理 redirect (转)
2007-09-20 17:42 8983当用XMLHttpRequest (或者其它ajax框架) 请 ... -
使用prototype的Ajax.Updater更新带javascript的html
2007-09-07 22:21 4772prototype的Ajax.Updater可以用来更新一段h ... -
Google的圆角效果(转)
2007-07-21 10:57 1894在以往的一些情况下,圆角是大家比较喜欢也经常使用的一个UI涉及 ...
相关推荐
采用MATLAB编写,根据原作者论文的思路编写,代码里面存在注释,适合聚类分析学习者查看
总结一下,Prototype模式是一种有效的创建型设计模式,通过对象的克隆来简化新对象的创建过程,减少重复代码,提高代码复用。在Java等支持克隆操作的编程语言中,实现起来相对简单,但需要注意深拷贝和浅拷贝的区别...
在压缩包中的"Demos"文件可能包含了使用PrototypeJS编写的实际示例,这些示例可能涵盖了基本的DOM操作、Ajax请求、事件处理等方面的代码。通过学习这些示例,你可以更好地理解如何在实际项目中应用PrototypeJS。 5...
该资源包括两个文件,一个是prototype代码,另一个是中文帮助,非常值得下载 ========================================= 以下是prototype框架简介 prototype.js 是Sam Stephenson写的一个Javascript的小框架(实际...
看到一个很好的东西在国内没有被很多人使用起来,实在是不爽,所以花了很大功夫把这个手册翻译成中文,由于这篇文章很长,所以,翻译的工作量很大而且有些地方英文版也没有说清楚,虽得查看源代码,好在不是坚持做完...
java中的prototype.js的代码
有了他会让你的JS写的更加方便,快速,操作DOM变成。
通过函数构造器、原型链以及`prototype.js`文件中可能提供的类和继承工具,我们可以创建复杂的对象结构和组织代码。理解并掌握这些概念有助于提升JavaScript编程能力,更好地适应现代Web开发的需求。
这个页面可能展示了如何在实际项目中集成和使用Prototype库,或者包含了一系列用例和示例代码,供学习者参考。 "jspage_file"可能是一个文件夹,里面包含与"jsPage.html"相关的资源,如CSS样式表、图像或者其他...
这个"C++设计模式代码资源10_prototype.zip"压缩包显然包含了关于C++实现原型模式的示例代码。 原型模式的核心概念是克隆(Cloning)。在C++中,克隆能力可以通过实现`clone()`方法来赋予一个类。这个方法会返回一...
本教程将详细介绍如何使用Prototype库实现一个带有进度条的异步文件上传功能,并涉及到后台代码的支持。 首先,我们需要理解Prototype的核心概念。Prototype通过扩展JavaScript的内置对象,如Array、Function和...
Prototype.js 是一个广泛使用的JavaScript库,它为JavaScript语言增加了许多实用的功能,使开发Web应用程序变得更加简单。这个压缩包包含了Prototype的1.6.0版本,包括中文版和英文版的文档,以及源代码文件。 首先...
本示例中,我们关注的是如何使用Prototype JavaScript框架来实现一个“超酷”的进度条效果。Prototype是一个强大的JavaScript库,它提供了许多便利的函数,使得操作DOM(文档对象模型)变得更加简单。 首先,我们要...
使用Prototype时,应遵循一些最佳实践,如合理组织代码(使用模块化),避免全局变量污染,以及利用Prototype的缓存机制减少DOM操作的开销。此外,了解并熟练使用Prototype提供的工具和模式,如观察者模式...
这个压缩包文件“JavaScript_Prototype(源代码+中文手册).rar”包含了关于JavaScript原型的源代码和中文手册,为学习和理解这一主题提供了丰富的资源。 JavaScript是一种动态类型的语言,其核心特性之一就是原型...
《Prototype 1.5.1使用手册》是针对JavaScript库Prototype的一个详细指南,该库是Web开发中的一个强大工具,尤其在处理DOM操作、Ajax交互和函数增强方面表现卓越。本手册以.chm(Compiled Help Manual)格式提供,...
在实际开发中,`prototype`的使用可以提高代码的复用性和效率。然而,过度使用或不恰当的使用`prototype`可能会导致性能问题,因为每次访问`prototype`上的属性时都需要查找原型链。 总的来说,`prototype`是...
包含的"prototype.js"文件是Prototype 1.6.0的源代码,这对于开发者来说是一份宝贵的参考资料。通过阅读源码,开发者可以直接了解每个函数的实现细节,理解其工作原理,从而更好地应用到自己的项目中。源码中的注释...
这个压缩包包含了Prototype库的多个版本的手册和源代码文件,便于开发者理解和使用。 首先,我们来看`prototype-1.6.0.3.js`,这是Prototype库的1.6.0.3版本的源代码文件。在这个版本中,Prototype提供了许多实用的...
"Prototype_1.4.doc"可能是一个关于Prototype 1.4版本的文档,以.doc格式存储,可能包含了详细的API说明、示例代码和使用指南。而"Prototype_1.5.1.chm"是一个帮助文件(Compiled Help Manual),通常用于存放软件的...