脚本宝典收集整理的这篇文章主要介绍了php – 使用大型数据库时,Ajax请求需要很长时间才能完成,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
将值发送到新闻控制器的javascript部分如下:
$(document).on('click','#saveToHomepage',function() { VAR url = ajaxRequestSendUrl; //ajaxRequestSendUrl contains url to news controller's promote to homepage method. $.ajax({ method: "GET",url: url,data: { contentIds: contentIds,//contentIds contains an array of news Ids in certain order },success: function() { // Show success message },error: function() { alert('Some error occured. Please reload the page and try again.'); } }); });
这是新闻控制器中的主页推广方法:
public function actionHomepage() { $allNews = News::model()->findAll(); $value = $_GET['contentIds']; foreach ($allNews as $news) { if($news->id == $value[0] ||$news->id == $value[1] ||$news->id == $value[2]) { $news->isChecked = 1; $news->homepagePos = array_seArch($news->id,$value); //Assign index of the array as the posITion $news->save(); } else { $news->isChecked = 0; $news->homepagePos = -1; $news->save(); } } }
我的问题是我的新闻表有超过2k的数据.所以ajax调用需要很长时间(超过一分钟)才能完成.有什么方法可以优化代码,还是有其他方法可以解决这个问题,以减少完成此操作所需的时间?
提前致谢
public function actionHomepage() { $values = $_GET['contentIds']; $sql = "UPDATE news SET IDChecked=0,homepagePos = -1"; Yii::app()->db ->createCommand($sql) ->execute(); for($ii = 0; $ii < 3; $ii++) { $sql = "UPDATE news SET idChecked = 1,homepagePos = ':homepagePos' WHERE id=:id"; Yii::app()->db ->createCommand($sql) ->bindValues(array(':homepagePos' => array_search($ii,$values),':id' => $values[$ii])) ->execute(); } }
以上是脚本宝典为你收集整理的php – 使用大型数据库时,Ajax请求需要很长时间才能完成全部内容,希望文章能够帮你解决php – 使用大型数据库时,Ajax请求需要很长时间才能完成所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。