Powershell (v4), 57 56 54 53 58 57 Bytes
Back at the Bytecount I started with!
for(){cls;"Loading... "+"|/-\"[($a=++$a%4)];sleep -m 250}
for(){cls;"Loading... "+"|/-\"[($a=++$a%4)];sleep -m 250}
The CLI in powershell will glitch out slightly on some computers, so it doesn't look perfect, but it's as good as I can feasibly get.
Moved $a++ into the for loop to save one byte, (no ;
)
Then moved it into the array indexer, for another 2 byte save, thanks to Roman for pointing that out.
Also saved 1 more byte (;
) by moving the Clear screen (cls
) part into the for loop..
Issue and fix pointed out by TimmyD for the infinite aspect of the question, only +5 Bytes required, changed $a++%4
into ($a=++$a%4)
so it will never go above 3.
Saved another byte by leaving the for loop totally blank, thanks to 'whatever' for pointing out that this is actually possible in Powershell Version 4!
New updated gif for the (final?) version of this answer.
for(;;cls){"Loading... "+"|/-\"[($a=++$a%4)];sleep -m 250}
for(;;cls){"Loading... "+"|/-\"[$a++%4];sleep -m 250}
for(;;){"Loading... "+"|/-\"[$a++%4];sleep -m 250;cls}
for(;;$a++){"Loading... "+"|/-\"[$a%4];sleep -m 250;cls}
for(;;){$a++;"Loading... "+"|/-\"[$a%4];sleep -m 250;cls}