You need to move your code to the <head> section. <head> content should be identical on every page. JQM loads scripts from <head> only on the first page visited, and ignores scripts in the <head> otherwise. (The reason for repeating identical <head>. content on every page is so that users can bookmark your pages and enter your site at any page.)
You've put the code in the body of the page, and it will be run once for every page loaded. (That is, the registration code will be run once per page. The callback then will be called each time any page is shown.) You're registering a live event callback (live is obsolete, I would suggest using delegate, or the delegating form of on, instead) for the pageshow event. You haven't used a selector to qualify a specific page, so you are asking that the code be executed for every page that is shown.
If you include this in the body of every page, then every page loaded is going to register this code to run when every subsequent page is loaded. So, for every page you load, you are adding one additional call to your code.
I'd suggest you read over the docs on how jQuery Mobile loads and manages pages, as well as the section on events.
If you aren't pre-loading pages, you should probably use a pageinit event and put your code in the <head>. This will run the code once for every page loaded.
If you are pre-loading pages, then you should use a pageshow event, but you will need to add code to insure that the code is run only once for each page. Otherwise, it will be run every time the page is shown, in case the user re-visits a page. (But you might actually want this, not sure exactly what you are trying to track.)