php – Ajax调用面临一个尴尬的局面
请问我长期问题……
我必须将一个数据库记录添加到一个主表中,比如测试表.在向此表添加记录后,我想要它的最后一个插入ID,然后想要在事务表中添加大约1000个条目(也将EMAILS发送到这1000条记录),让我们说test_transaction表. 但是这第二个操作,将记录添加到事务表中,需要更多的时间来向数据库添加记录.我正在使用客户MVC,我的代码看起来像…… public function addtotest() { $strSql = "INSERT INTO test ..."; $intId = $this->db->execute($strSql); foreach($arrTransaction $transact) { $strSql = "INSERT INTO test_transaction ..."; $this->db->execute($strSql); } echo $intId; } 所以我想把test_transaction表的条目放到另一个动作中,如下所示 public function testtrancation() { $id = $_REQUEST['id']; //It's understood that I am doing proper validation here foreach($arrTransaction $transact) { $strSql = "INSERT INTO test_transaction ..."; $this->db->execute($strSql); } } 所以主要的问题是,我正在调用来自AJAX的addtotest动作,当它响应id时,我想调用另一个AJAX,它将向数据库添加大约1000条记录. 但我不想让他们等待另外几分钟的1000条记录来打扰用户的体验. >所以我正在通过addtotest`AJAX’调用添加记录后重新加载页面. $.ajax( { url: SERVER_PATH + 'addtotest',type: 'post',async: true,data: { required_data: required_date },success:function(data) { alert('Record added successfully.'); //I DO NOT WANT USERS TO WAIT FOR THIS AJAX CALL $.ajax( { url: SERVER_PATH + 'testtransaction',data: { intId: data.id },success:function(data) { //DO NOTHING },}); //I DO NOT WANT USERS TO WAIT FOR THIS AJAX CALL location.reload(); },}); 但是当页面重新加载时,我的AJAX调用也会在没有完成AJAX请求的情况下消失. 那么在这种情况下可以做到吗?我想了解更多细节,请告诉我. 我不希望用户等待另外1000个条目(加上发送EMAILS到这1000条记录)进入数据库.
然后只需创建一个数据库触发器.
所以当Record在第一个表中插入时 它插入到事务表或SO中. 例子 – CREATE TRIGGER trg_Table1_INSERT ON dbo.Table1 AFTER INSERT AS BEGIN INSERT INTO dbo.Table2(SerialNo,Name) SELECT SerialNo,Name FROM Inserted INSERT INTO dbo.Table3(SomeOtherCol) SELECT SomeOtherCol FROM Inserted END (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |