Du har ingen mulighed for at gøre en refresh klient-uafhængig.
At finde fejlen, der gør, at opdateringen springes over, ville kræve hele koden ... ikke bare et par linier.
Under alle omstændigheder er du ude i en helt gal måde at bygge en chat på. Du belaster serveren flere tusinde procent mere end nødvendigt, når du ved hver opdatering henter hele dokumentet - med tilhørende style-sheet und alles. Du skal blot hente de sætninger, brugeren endnu ikke har set ... helt uformateret.
Det kan du gøre ved kun at lade et dokument opdatere i en skjult iframe. Denne side henter de sætninger fra DB'en, brugeren ikke har set. Indholdet skrives derefter dynamisk op i et div (eller en tabel) i hovedokumentet på onLoad af det opdaterende dokument.
At skrive en god chat i et script-sprog er i forvejen en umulig opgave. Vil man absolut gøre det, skal man holde tungen lige i munden og tænke sig rigtig grundigt om.
Du kan hente et lille skellet til en chat i PHP/MySQL med dynamisk opdatering via JavaScript her:
http://www.tjenester.dk/x-codes.dk/eksperten/chat/Den ligger i øvrigt også i en ASP/MySQL-version :)