Допустим, ваш сайт посещают 200 000 уникальных пользователей в день. Итак, ваш сервер сильно загружен/забит; и у вас НЕТ ресурсов для покупки большего/лучшего сервера. Итак, вы застряли с тем, что у вас есть.
Теперь, всякий раз, когда пользователь заходит на ваш сайт, вам нужно выполнить некоторые вычисления (рассчитать расстояние между городом пользователя, обнаруженным через GeoIP, и некоторым белым списком городов, определить ближайший город в радиусе 140 миль).
Вы бы сделали этот расчет через PHP или через JavaScript?
Во-первых, не могли бы вы предварительно рассчитать все близлежащие города в радиусе 140 миль от городов, внесенных в белый список? Например: Город 1 из белого списка может иметь 20 близлежащих городов. Или вы будете каждый раз делать расчеты на лету?
Например: Белый список = Детройт, Мичиган и соседний город = Каламазу, Мичиган (140 миль)
Во-вторых, если предварительно вычислить: вы бы сохранили это в файле XML или в какой-нибудь таблице MySQL? Теперь нам осталось только поискать по таблице (mysql или xml размером не более 1 мб). Я предполагаю, что это было бы неэффективно, потому что браузеру клиента (JavaScript) пришлось бы загружать 1 МБ xml и выполнять поиск по нему. Это сделало бы время загрузки страницы еще медленнее. Использование БД может быть быстрее, но тогда увеличивается нагрузка на БД (если 200 000 уникальных пользователей пытаются загрузить страницу в течение дня).
Возможно, лучшим способом было бы выполнить предварительное вычисление, сохранить предварительно вычисленные результаты в XML, а затем использовать PHP для поиска в XML и поиска ближайшего город из белого списка для пользователя?