Тогда всё упирается в два вопроса:
Можете ли вы гарантированно управлять порядков подключения скриптов в своём документе?
Используете ли вы history.pushState() в своём документе?
А если я скопировал адрес и вставил его во вкладке, где до этого было открыто 10 страниц с другого хоста?
Чем это отличается от открытия в новой вкладке?
К сожалению, только один sessionStorage позволит определять факт открытия страниц с данного хоста. Открытые перед этим страницы с других хостов не повлияют на результат.
Что значит «в новой вкладке»?
Могут ли быть открыты до неё там страницы с других хостов или требование быть первой относится к этому хосту?
Можете ли вы гарантированно управлять порядков подключения скриптов в документе?
А ещё лучше — объясните цель.
Учитесь уже, в конце концов, задавать вопросы.
Термин «ИТ», судя по вопросу, — информационные технологии. Тот факт, что вы упрямо продолжаете причислять их к среднему роду, только подчёркивает несуразность вопроса.
Алексей Королёв:
1. retrieveRecordsReq.send(); находится внутри тела обработчика onreadystatechange. Отправку нужно поставить на один уровень с открытием, установкой заголовков и обработчика. Это как минимум.
2. У вас 2 функции cityfromevent. Это — нормально? Быть может, первая называется getcity? Если это так, то читайте внимательно ссылку, что я привёл и постарайтесь понять разницу между синхронным и асинхронным выполнением кода.
Не думаю, что при вёрстке блока, стоящего за плавающим, рассчитывают на такое поведение контейнера с вложенными элементами. Так что, скорее всего, я для предотвращения выпадения плавающих потомков оставлю только :after.