Un datatable o la cache non sono proprio leggeri.
Io memorizzerei l'IP ed il timestamp nella Session, ed al click del bottone controllerei che siano passati i secondi che devono passare e che l'ip ci sia. Se si, accedo al servizio. Se no, un avviso.