1b96a7e1ee49ffa05d3bfa42000c920bcbb51e5a
[platform/framework/web/web-ui-fw.git] / libs / js / jquery-mobile-1.0.1pre / tests / speed / stats / perf.js
1 window.Perf = (function($, Perf) {
2         $.extend(Perf, {
3                 reportUrl: 'stats/',
4                 revUrl: 'stats/rev.php',
5
6                 // should be defined before report or poll are run
7                 currentRev: undefined,
8
9                 report: function( data, after ) {
10                         $.extend(data, {
11                                 pathname: location.pathname,
12                                 agent: this.agent(),
13                                 agentFull: window.navigator.userAgent,
14                                 agentVersion: this.agentVersion()
15                         });
16
17                         $.post( this.reportUrl, data, after );
18                 },
19
20                 poll: function() {
21                         var self = this;
22
23                         setInterval(function() {
24                                 $.get( self.revUrl, function( data ) {
25
26                                         // if there's a new revision refresh or currentRev isn't being set
27                                         if( self.currentRev && self.currentRev !== data ){
28                                                 location.href = location.href;
29                                         }
30                                 });
31                         }, 60000);
32                 },
33
34                 setCurrentRev: function() {
35                         var self = this;
36
37                         $.get( self.revUrl, function( data ) {
38                                 self.currentRev = data;
39                         });
40                 },
41
42                 agent: function() {
43                         var agent = window.navigator.userAgent;
44
45                         for( name in this.agents ) {
46                                 if( agent.indexOf( this.agents[name] ) > -1 ) {
47                                         return this.agents[name];
48                                 }
49                         }
50
51                         return agent;
52                 },
53
54                 agentVersion: function() {
55                         var agent = window.navigator.userAgent;
56
57                         agent.search(this.vRegexs[this.agent()] || "");
58
59                         return RegExp.$1 ? RegExp.$1 : "0.0";
60                 },
61
62                 agents: {
63                         ANDROID: "Android",
64                         WP: "Windows Phone OS",
65                         IPHONE: "iPhone OS",
66                         IPAD: "iPad; U; CPU OS",
67                         BLACKBERRY: "BlackBerry"
68                 },
69
70                 vRegexs: {}
71         });
72
73         Perf.vRegexs[Perf.agents.ANDROID] = /([0-9].[0-9])(.[0-9])?/;
74         Perf.vRegexs[Perf.agents.WP] = /Windows Phone OS ([0-9].[0-9]);/;
75         Perf.vRegexs[Perf.agents.IPHONE] = /iPhone OS ([0-9]_[0-9])/;
76         Perf.vRegexs[Perf.agents.IPAD] = /iPad; U; CPU OS ([0-9]_[0-9])/;
77         Perf.vRegexs[Perf.agents.BLACKBERRY] = /BlackBerry ([0-9]{4})/;
78
79         return Perf;
80 })(jQuery, window.Perf || {});