Looping all players is inefficient, try this:
on join:
while player is online:
if {exp::%player%} >= 100 * {level::%player%}:
add 1 to {level::%player%}
send "{@prefix} &7You have successfully leveled up to level %{level::%loop-player%}%&7."
set {exp::%player%} to 0
wait 1 second
DO NOT FORGET THE WAIT 1 SECOND