Throttling client initiated traffic
First Claim
1. A machine-implemented method, comprising:
- electing one of a plurality of browser tabs at a client device as a master browser tab based on a respective timer value generated by each of the plurality of browser tabs, each of the plurality of browser tabs running web pages or web applications maintained by a common service being served by one or more servers, the respective timer value indicating a next time that each of the plurality of browser tabs will issue a request to the one or more servers;
issuing the request from the master browser tab to the one or more servers on behalf of the plurality of browser tabs when the respective timer value of the master browser tab expires;
receiving a response to the request at the master browser tab from the one or more servers, the response from the one or more servers including an update time value indicating the next time the request should be sent to the one or more servers;
updating, by the master browser tab, a local storage accessible by the plurality of browser tabs with the update time value that indicates the next time the request should be sent to the one or more servers; and
resetting, responsive to receiving the response, the respective timer value at each of the plurality of browser tabs by reading the update time value from the local storage, generating a respective random wait time value, and resetting the respective timer value as a function of the update time value with respect to the generated respective random wait time value.
2 Assignments
0 Petitions
Accused Products
Abstract
In one aspect, a method includes electing one of a plurality of browser tabs at a client device as a master browser tab based on a timer value associated with each of the plurality of browser tabs, each of the plurality of browser tabs running web pages or web applications maintained by a common service being served by one or more servers, issuing a request from the master browser tab to the one or more servers, receiving a response to the request including a time value indicating the next time a request should be sent to the one or more servers at the master browser tab, updating, by the master browser tab, a local storage accessible by the plurality of browser tabs with the time value and resetting the timer value at each of the plurality of browser tabs according to the time value in response to receiving the response.
-
Citations
19 Claims
-
1. A machine-implemented method, comprising:
- electing one of a plurality of browser tabs at a client device as a master browser tab based on a respective timer value generated by each of the plurality of browser tabs, each of the plurality of browser tabs running web pages or web applications maintained by a common service being served by one or more servers, the respective timer value indicating a next time that each of the plurality of browser tabs will issue a request to the one or more servers;
issuing the request from the master browser tab to the one or more servers on behalf of the plurality of browser tabs when the respective timer value of the master browser tab expires;
receiving a response to the request at the master browser tab from the one or more servers, the response from the one or more servers including an update time value indicating the next time the request should be sent to the one or more servers;
updating, by the master browser tab, a local storage accessible by the plurality of browser tabs with the update time value that indicates the next time the request should be sent to the one or more servers; and
resetting, responsive to receiving the response, the respective timer value at each of the plurality of browser tabs by reading the update time value from the local storage, generating a respective random wait time value, and resetting the respective timer value as a function of the update time value with respect to the generated respective random wait time value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
- electing one of a plurality of browser tabs at a client device as a master browser tab based on a respective timer value generated by each of the plurality of browser tabs, each of the plurality of browser tabs running web pages or web applications maintained by a common service being served by one or more servers, the respective timer value indicating a next time that each of the plurality of browser tabs will issue a request to the one or more servers;
-
10. A system comprising:
- one or more processors; and
a machine-readable medium comprising instructions stored therein, which when executed by the processors, cause the processors to perform operations comprising;
determining a respective timer value for each of one or more browser tabs, the respective timer value indicating a next time that each of the one or more browser tabs will issue a request to a set of servers serving content running at each of the one or more browser tabs;
sending the request from a master browser tab of the one or more browser tabs to the set of servers on behalf of the one or more browser tabs when the respective timer value of the master browser tab expires, the master browser tab being selected from the one or more browser tabs according to the respective timer value associated with the master browser tab;
receiving a response to the request at the master browser tab, the response including an update time value indicating the next time the request should be sent to the set of servers;
updating, by the master browser tab, a local storage accessible by the one or more browser tabs with the update time value; and
resetting, responsive to updating the local storage, the respective timer value at each of the one or more browser tabs by reading the update time value from the local storage, generating a respective random wait time value, and resetting the respective timer value as a function of the update time value with respect to the generated respective random wait time value. - View Dependent Claims (11, 12, 13, 14, 15, 16)
- one or more processors; and
-
17. A non-transitory machine-readable medium comprising instructions stored therein, which when executed by a machine, cause the machine to perform operations comprising:
- sending a request from a master browser tab of one or more browser tabs to a set of servers on behalf of the one or more browser tabs, the master browser tab being selected according to a respective timer value for each of one or more browser tabs, the respective timer value indicating a next time that the browser tab will issue the request to the set of servers serving content running at the browser tab, wherein the master browser tab sends the request when the respective timer value for the master browser tab expires;
receiving a response to the request at the master browser, the response including an update time value indicating the next time the request should be sent to the set of servers;
updating, by the master browser tab, a local storage accessible by one or more browser tabs with the update time value; andresetting, responsive to updating the local storage, the respective timer value at each of the one or more browser tabs based at least in part on the update time value by reading the update time value from the local storage, generating a respective random wait time value, and resetting the respective timer value as a function of the update time value with respect to the generated respective random wait time value. - View Dependent Claims (18, 19)
- sending a request from a master browser tab of one or more browser tabs to a set of servers on behalf of the one or more browser tabs, the master browser tab being selected according to a respective timer value for each of one or more browser tabs, the respective timer value indicating a next time that the browser tab will issue the request to the set of servers serving content running at the browser tab, wherein the master browser tab sends the request when the respective timer value for the master browser tab expires;
Specification