高级jQuery:让好的应用程序变成强大的应用程序

简介

这个关于 jQuery 的系列文章帮助您提高了创建基于 JavaScript 的 Web 应用程序的能力。即使您在阅读这些文章之前从未听说过 jQuery,但是您应该已经具备了使用 jQuery 构建良好的 Web 应用程序所需的 语言技能和背景知识。但是,有时候良好的应用程序还不能满足需求,这时您将 需要一个强大的 Web 应用程序。这就需要通过几个步骤修改现有的应用程序, 让它能够在各种场合中顺利运行,并且适合所有用户。这些步骤是优化您的 Web 应用程序的最后绝招。

在本文中,我将讨论代码的性能改进,同时也谈 及一些关于 jQuery 库的容易被忽视的问题。有些东西对于复杂的应用程序而言 至关重要,即对所有应用程序都非常关键的插件,以及使应用程序的编写更加容 易的良好设计技巧。在最后一个小节中,我将讨论 jQuery 1.3 中的一些新特性 ,它们是最近发布的并且为 jQuery 库添加了一些新特性。

第一个示例 应用程序

本文中的大部分技巧都可以从附带的样例应用程序中找到(见 下载),这是一个直观的电子邮件 Web 应用程序。您可能对它比较熟悉,因为 我在本系列的第一篇文章中使用的就是它。不过,您可以看到它是如何从第一篇 文章中发展而来的,它的性能是如何改进的,以及这些最后步骤如何将它转变成 强大的 Web 应用程序的。

图 1. 样例应用程序

Bind/Unbind

在 Events 模块中有两个函数,它们是 bind() 和 unbind(),用于完成所有其他事件方法的任务。如果您能够向页面元素添加 一个 click() 方法,那么哪还有必要调用 bind("click") 呢?这仅是浪费时间 而已。但是,这些函数在特定情况下是非常方便的,如果正确地使用它们,可以 显著提高应用程序的性能。这些函数不仅能够向特定页面元素添加事件(就像该 模块中的许多其他事件方法一样),而且还可以从页面元素中删除这些事件。为 什么要这样做?下面我们看看这个 Web 应用程序,以及如何在特定情况下使用 这些函数。

图 2. Bind/Unbind 示例

清单 1 显示了以上设置的代码,这是未改进之前的原始代码:

清单 1. 未经过优化的小部件

$(document).ready (function(){
  // cache this query since it's a search  by CLASs
  selectable = $(":checked.selectable");
   // when the select/deselect all is clicked, do this  function
  $("#selectall").click(selectAll);
  //  whenever any individual checkbox is checked, change the  text
  // describing how many are checked 
   selectable.click(changeNumFilters);
  // calculate how many  are initially checked 
  changeNumFilters();
});

var selectable;

function changeNumFilters()
{
  // this needs to be checked on every call
   // since the length can change with every click
  var  size = $(":checked.selectable").length;
  if (size >  0)
   $("#selectedCount").html(size);
  else
    $("#selectedCount").html("0");
 }

// handles the  select/deselect of all checkboxes
function selectAll()
{
  var checked = $("#selectall").attr("checked");
   selectable.each(function(){
   var subChecked =  $(this).attr("checked");
   if (subChecked != checked)
   {
     $(this).click();
   }
  });
  changeNumFilters();
  }

时间: 2024-09-17 03:52:22

高级jQuery:让好的应用程序变成强大的应用程序的相关文章

《UNIX环境高级编程(第3版)》——1.6 程序和进程

1.6 程序和进程 1.程序 程序(program)是一个存储在磁盘上某个目录中的可执行文件.内核使用exec函数(7个exec函数之一),将程序读入内存,并执行程序.8.10节将说明这些exec函数. 2.进程和进程ID程序的执行实例被称为进程(process).本书的每一页几乎都会使用这一术语.某些操作系统用任务(task)表示正在被执行的程序. UNIX系统确保每个进程都有一个唯一的数字标识符,称为进程ID(process ID).进程ID总是一个非负整数. 实例图1-6程序用于打印进程I

cs aspx-我想往后台.cs程序中传递前台.aspx程序的值 怎么传不了

问题描述 我想往后台.cs程序中传递前台.aspx程序的值 怎么传不了 前台.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN

使您的应用程序调用我的应用程序,第3部分: 资源适配器

本系列教程共分三部分,在 第 1 部分 和 第 2 部分 中,您学习了如何开发消息驱动 bean(MDB)和实体 bean,并在 Apache Geronimo 中部署和测试它们:还了解了如何创建一个电子邮件应用程序,并将其部署到 Java Apache Mail Enterprise Server(Apache James)中.在系列教程的最后这一期中,您将学习与 Java 2 Platform,Enterprise Edition(J2EE)Connector Architecture(JC

在一个程序后面运行另一个程序

问:怎样在一个程序运行后面运行另一个程序? ●1. 在一个程序里面运行另一个程序的最简单的方法是把它们依次列入一个批处理文件(扩展名为.BAT的文件),在执行该批处理文件时,其中所列程序就会自动运行.在C或DOS中,都没有一种特定的方法来完成"在一个程序结束后运行另一个程序"这样一种函数调用.然而,C提供了两组函数,它们允许一个程序随时可以运行另一个程序,而后者的运行将结束前者的运行.如果你将这样的函数调用放在第一个程序的末尾,就能达到上述目的.C提供的这两组函数是exec()和spa

怎样通过一个程序来生成另一个程序

前不久大家都在讨论怎样通过一个程序来生成另一个程序,我提出了将另一个程序当资源文件包含在程序中一起编译,然后在程序运行时根据需要再重新生成出来,下面是我的一个例子, 在这里,我将windows自带的写字板(writer.exe)当资源. 下面是源代码 //资源文件writer.exe长度为204800,在资源文件中定义为"CUSTOM"资源,编号为1111 HRSRC  hMyRes;  //resource handle HGLOBAL  hgpt;  //resource poin

对应用程序结构进行组织的程序示例

上面我们介绍了对应用程序结构进行组织的方法,接下来我们举一个综合应用的例子.程序实现的功能非常简单,但其中用到了我们讲解的各方面的知识.在程序中,我们利用名字空间把应用程序功能进行分割,并且用到了在一个名字空间中包含多个类.在一个可执行文件中调用多个动态链接库的方法.程序中还用到了异常处理.类的继承.派生类对虚方法的重载.多态性的实现等概念,希望读者能够在阅读程序时认真注意这些用法,来加深对基本概念的理解. 该程序是一个小游戏,游戏中随机产生矩形.正方形.直角三角形.等腰直角三角形四种图形.游戏

探讨:东方程序员眼中的西方程序员是怎样?

引言:本文译自StackExchange上的一个讨论贴:东方程序员眼中的西方程序员是怎样的?,有网友发帖问: 在我看来,东方的程序员如何看待西方同行是一个有趣并且重要的问题. 通常认为东方国家(印度/中国/菲律宾)是为西方国家提供外包服务(美国和欧洲)的. 你有过参与离岸开发的经历吗?如果有,你对此有何看法? 对于西方程序员你有哪些总印象吗(比如是否具有协作精神,是否按时交付产品,或者他们的工作质量如何)? 以下是来自东方各国程序员的答案: 一.印度程序员 Danish 身为印度人,我想谈谈印度

如何缓解Web应用程序威胁 缓解Web应用程序威胁的方法

现在几乎所有企业都会在互联网上建立网站,他们不仅通过网站提供信息,而且还通过Web应用程序.博客和论坛与他们的客户进行互动.从网上零售商的互动婴儿注册表,到电子交易网站的投资计算器,或者软件供应商的互动支持论坛,企业每天都会产生新的Web应用程序来使获取信息. 以业务为中心的Web互动迅速发展也带来了新的信息安全威胁,而企业以前的静态网页并没有这些威胁.这些威胁主要是针对Web应用程序,包括补充的Web服务器.数据库和其他支持基础设施. 在本文中,我们将讨论Web应用程序面临的最严重的威胁以及安

windows7系统任务计划程序绕过UAC管理实现程序的开机自启动

在之前的APU使用K10stat超频教程中笔者讲述了通过win7任务计划程序,成功的在不关闭UAC用户帐户控制情况下实现K10stat超频程序开机自启动,实际上win7任务计划程序能够的达到的工作不仅仅只能是实现apu的超频自启动. 大家知道自从vista开始,一直延续到最新操作系统均存在的UAC用户帐户控制可以大大的增加操作系统安全性,但也常常在使用中为我们带来不便.特别是一些需要开机自启动的小软件,因为这样那样的原因往往无法通过UAC用户帐户控制,因而无法使用拖拽快捷方式放到开始菜单---所