I honestly have no idea where my reply went... That's strange.
For pageinit you would call it on each page. So for example, if you want to bind events to page 1 you would put those binds in $("#page1").on("pageinit", function(e){...});
That way the event won't get bound on every single page.
If you don't specify a page - $(document).on("pageinit", function(e){...}); it will run every time a new page is initialized.
Now, document.ready(..) MAY work, if you are not using specific page initializations. So that might not be as important - but it's not good practice to use that for JQM. This most likely isn't an issue for you..
On to the problem - have you tried debugging? If you add items to a listview dynamically (which it looks like you are), the .listview("refresh") should work. My guess is there is a JavaScript error somewhere else - have you looked at the console? Is there anyway I can take look at your page?