を実行された場合、私は、次の機能を持たせて検出:私は(ドキュメント).readyにこの関数を呼び出す機能が
function enviarMail() {
for (var x = 1; x <= idShort; x++) {
var nume = $('#Num' + x).text();
var purp = $('#Pur' + x).text();
var open = $('#Open' + x).text();
var close = $('#Close' + x).text();
var owner = $('#Owner' + x).text();
var fam = $('#Fam' + x).text();
var vs = $('#Vs' + x).text();
var sta = $('#Sta' + x).text();
var mail = $('#Mail' + x).text();
$.ajax({
type: 'POST', //POST | GET
url: urlServer + 'ws_alerts.asmx/SendMailExp',
data: '{"us":"' + owner +
'","email":"' + mail +
'","vs":"' + vs +
'","fam":"' + fam +
'","pur":"' + purp +
'","open":"' + open +
'","close":"' + close +
'","id":"' + nume + '"}',
dataType: 'json',
contentType: 'application/json',
timeout: 600000,
error: function (xhr) {
bootbox.alert("No se pudo enviar el correo.");
},
success: function (data) {
}
});
}
}
を、正常に動作します!しかし、私はこの機能を1回だけ実行したいと思います。例えば、私が8:00にログインすると、関数が実行されます。そして、再び9:15にログインすると、関数は再び実行され、私はこのメールがいっぱいの電子メールなので、1日1回の機能を実行するにはどうすればいいですか?
PD。機能はメインページで実行されるので、多くのユーザーがその機能を実行できますが、実行するのは1回だけで、どのユーザーがそれを行うかは関係ありません。
PD2。私はタイマーで考えていましたが、ユーザーはどんなデバイスからでもアクセスできるので、これが機能するかどうかはわかりません(たとえば、PCからログインしてタイマーを開始した後、自分のタブレットからログインしますタイマーは?私は別の時間がPCから同じになるだろうか?)
すべてのユーザーに対して1回だけ実行し、各ユーザーに対して1回実行しないでください。サーバー上で状態を維持する必要があります。この関数は、他のユーザーがその日に関数を実行したかどうかを調べるためにAJAX呼び出しを実行する必要があります。 – Barmar
あなたの要件では、バックエンドスクリプトとDBまたはcronジョブと一緒にこれを行う必要があると思います。 –
これにはサーバーが必要です。あなたはアプリケーションサーバーを持っていますか? – trincot