当用户查看某个个人资料页面时,我需要向最终用户发送电子邮件,但是如果可能的话,我希望异步执行此操作。可以用PHP完成吗?在呈现页面的其余部分之前,我真的不想等待PHP函数完成。它应该对用户无缝。
或者这是客户端更好的解决方案:
$.post("msg.php?user=xxx", function(data) {
....
}, "json");
有首选方法吗?
答案 0 :(得分:4)
如果您想要互动,请转到ajax()
方法;如果您只想点击一个监听器脚本(从而初始化一组PHP功能),请使用post()
这是同一方法的简写版本:
$(function() {
// If you just want to activate a listener script (with no interaction)
$.post('/path/to/script.php');
// If you want to receive data back from your script for use in the DOM
$.ajax({
type: "POST",
url: "/path/to/script.php",
data: { name: "John", location: "Boston" }
}).done(function( response ) {
alert( response );
});
});
答案 1 :(得分:0)
让您的页面执行异步操作的最佳方法是使用AJAX,如您所建议的那样。
答案 2 :(得分:0)
如果您遇到服务器端解决方案,可以使用proc_open或shell_exec执行脚本。根据您的环境,可能会有一些限制,但这通常是多线程PHP的快速而肮脏的方式,因此可以异步发生。
也就是说,在脚本的某个地方,如果设置了一个标志(例如通知标志),它将调度一个像'../private/notify.php'这样的进程...看看如何将参数传递给命令php的行调用。还可以选择直接调用sendmail。
确保在尝试之前先测试一下;你需要确保: