《JavaScript设计模式》——11.3 站长统计

11.3 站长统计

“当然,代理对象有很多,简单一点的如img之类的标签通过src属性可以向其他域下的服务器发送请求。不过这类请求是get请求,并且是单向的,它不会有响应数据,就好比你站在河的一边向另一边发消息,却又不想让别人听见,所以你可以将你的消息写在纸上放在口袋里,然后扔过去,不过河对岸有没有人接收到你的消息就不得而知了。”

“你说的还挺有意思的,不过这类代理对象有什么应用呀?”小白问。

“很多呀,比如一些站长平台会有对于你的页面的统计项,其实现原理就是在你的页面触发一些动作的时候向站长平台发送这类img的get请求,然后他们会对你发的请求做统计,然而你并不知道统计的相关消息。”小铭解释道。

// 统计代理
var Count = (function(){
  // 缓存图片(参考第二十二章,备忘录模式)
  var _img = new Image();
  // 返回统计函数
  return function(param){
    // 统计请求字符串
    var str = 'http://www.count.com/a.gif?';
    // 拼接请求字符串
    for(var i in param){
      str += i + '=' + param[i];
    }
    // 发送统计请求
    _img.src = str;
  }
})();
// 测试用例,统计num
Count({num : 10});
时间: 2024-11-05 23:21:30

《JavaScript设计模式》——11.3 站长统计的相关文章

常用的Javascript设计模式

<Practical Common Lisp>的作者 Peter Seibel 曾说,如果你需要一种模式,那一定是哪里出了问题.他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案. 不管是弱类型或强类型,静态或动态语言,命令式或说明式语言.每种语言都有天生的优缺点.一个牙买加运动员, 在短跑甚至拳击方面有一些优势,在练瑜伽上就欠缺一些. 术士和暗影牧师很容易成为一个出色的辅助,而一个背着梅肯满地图飞的敌法就会略显尴尬. 换到程序中, 静态语言里可能需要花很多功夫来实现装饰

《JavaScript设计模式》——导读

前言 JavaScript设计模式 设计模式是解决软件设计中常见问题的可复用方案.探索任何编程语言时,设计模式都是一个令人兴奋和极具吸引力的话题. 原因之一是:设计模式是许多先前开发人员总结出的经验,我们可以借鉴这些经验进行编程,以确保能够以优化的方式组织代码,为我们解决棘手的问题提供参考. 设计模式还是我们用来描述解决方案的常用词汇.当我们想要向其他人表述一种以代码形式构建解决方案的方式时,描述设计模式比描述语法和语义要简单得多. 在本书中,我们将探讨JavaScript编程语言中经典的与现代

《JavaScript设计模式》——2.3 传宗接代——继承

2.3 传宗接代--继承 "小白,看继承呢?"小铭忙完自己的事情走过来. "是呀,刚才学习类,发现每个类都有3个部分,第一部分是构造函数内的,这是供实例化对象复制用的,第二部分是构造函数外的,直接通过点语法添加的,这是供类使用的,实例化对象是访问不到的,第三部分是类的原型中的,实例化对象可以通过其原型链间接地访问到,也是为供所有实例化对象所共用的.然而在继承中所涉及的不仅仅是一个对象." "对呀,不过继承这种思想却很简单,如千年文明能够流传至今靠的就是传承

站长统计助力09江苏站长年会 报名倒计时

中介交易 SEO诊断 淘宝客 云主机 技术大厅 据组委会的最新消息,即将于11.7在江苏南京大学科技馆精彩上映的本年度最大的江苏站长年会"2009江苏站长年会暨江苏(南京)互联网高峰论坛"规模500人,目前正在火热接受报名中,目前根据最新的参会数据报名已经超过500余站,考虑到江苏站长的热情参与组委会还在最后接受少量的报名中.目前已经有超过上百家网站资源参加了本次年会的互助推广活动,在网站醒目位置悬挂本次目前取得了非常好的推广效果. 本次年会除了得到众多知名网站和知名网络机构的支持外,

《JavaScript设计模式》——2.2 包装明星——封装

2.2 包装明星--封装 2.2.1 创建一个类 "在JavaScript中创建一个类很容易,首先声明一个函数保存在一个变量里.按编程习惯一般将这个代表类的变量名首字母大写.然后在这个函数(类)的内部通过对this(函数内部自带的一个变量,用于指向当前这个对象)变量添加属性或者方法来实现对类添加属性或者方法,例如:" var Book = function(id, bookname, price){ this.id = id; this.bookname= bookname; this

《JavaScript设计模式》——9.12 Decorator(装饰者)模式

9.12 Decorator(装饰者)模式 Decorator是一种结构型设计模式,旨在促进代码复用.与Mixin相类似,它们可以被认为是另一个可行的对象子类化的替代方案. 通常,Decorator提供了将行为动态添加至系统的现有类的能力.其想法是,装饰本身对于类原有的基本功能来说并不是必要的:否则,它就可以被合并到超类本身了. 装饰者可以用于修改现有的系统,希望在系统中为对象添加额外的功能,而不需要大量修改使用它们的底层代码.开发人员使用它们的一个共同原因是,应用程序可能包含需要大量不同类型对

javascript设计模式--策略模式之输入验证_javascript技巧

策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算饭的客户. 先定义一个简单的输入表单: <!DOCTYPE html> <html> <head> <meta charset="utf-"> <style> .form{ width: px; height: px; #margin: px auto; } .form-item-label{ width:px; text-align:

JavaScript实现网站访问次数统计代码_javascript技巧

作为一个网站的管理员或者说站长,都希望知道到底有多少人访问了网站,这个时候就需要有一个统计功能来满足需要,当然功能比较单一和简单,如果想要强大的统计效果,那最好还是使用现在比较成熟的统计工具,比如站长统计或者腾讯统计等等. 代码一: 代码如下: <script type="text/javascript"> var caution=false function setCookie(name,value,expires,path,domain,secure) { var cu

JavaScript设计模式之观察者模式

设计模式(Design Pattern)对于软件开发来说其重要性不言而喻,代码可复用.可维护.可扩展一直都是软件工程中的追求!对于我一个学javascript的人来说,理解设计模式似乎有些困难,对仅切图.做少量交互效果的FE甚至可能不会用到,但是当你开始使用Angular/Backbone等框架的时候,就无法避免设计模式.MVC/MVVM这些东西了(反正我是伤脑筋). 我学设计模式是刚开始接触编程大概三个月的时候,看一本书<大话设计模式>,里面用C#语言来写,我很无语,因为强类型的编程语言对于