javascript – 如何增加我的Ajax像按钮速度(Jquery PHP)

我做了一个Ajax Like Button.单击like按钮后,需要大约800ms – 1100 ms才能执行以下操作:

>使用Jquery后台打开insertlike.PHP页面
>在insertlike.PHP页面中将类似内容添加数据库
>使用JSON确认
>将类似按钮的颜色变为绿色.

但Facebook和其他网站的Like按钮工作得非常快.

Facebook在点击时直接更改类似按钮的颜色,或者仅在将数据添加数据库后才更改?

这是我的代码

index.PHP代码来发出ajax请求

$(".insertlike").submit(function(e) {

    var data = $(this).serialize();
    var url = $(this).attr("action");
    var form = $(this); 
    $.post(url,data,function(data) { 
    try {
        data = JSON.parse(data);
        $(form).children("button").html(data.addremove + " Watchlist");
        $(form).children("input#addedornotsend").attr("value",data.addedornotsend); 

    } catch (e) {
        console.log("json encoding Failed");
        return false;
    }
});
  return false;
});

insertlike.PHP中的代码

PHP

// Add to Database code 

$response = new \stdClass();
$response->addremove = "".$addremove."";
$response->addedornotsend = "".$addedornotsend."";
die(json_encode($response));

有什么方法可以插入类似按钮的速度吗?也许一些PHP缓存技巧或类似的东西?我还是新手.

编辑:这是我的服务器响应时间速度测试:

enter image description here

最佳答案
您可以关注基于事件的架构.用户单击like按钮,将消息放入队列,然后在后台写入DB(数据网格也可以是解决方案,不确定PHP是否具有良好的数据网格解决方案).假设DB记录成功更新,将回送客户端响应.

https://martinfowler.com/articles/201701-event-driven.html

如果要更新单个表,则800ms – 1100 ms似乎不是可接受的时间轴.尝试调整sql,检查数据库是否已正确调整.尝试使用ConnectionPool等.

在Facebook,a.除了更新数据库之外,b.它还进行其他后台处理,例如向相关方等生成NewsFeeds.我推测FB可能正在使用基于事件的体系结构而不是让用户等待.

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...