You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue中独立API请求无法并行执行,Laravel本地开发如何解决?

解决Laravel本地开发环境并发请求阻塞问题

你的问题核心是Laravel默认的artisan serve是单进程运行,同一时间只能处理一个请求,导致自动补全请求被阻塞,必须等第一个耗时请求完成后才能批量处理。以下是几种可行的解决方法:

1. 改用Laravel Sail(推荐)

Sail是Laravel官方的Docker开发环境,天然支持多进程处理请求。启动时可指定工作进程数量:

sail up --workers=4

配置后就能同时处理多个独立请求,自动补全请求不会再被阻塞。

2. 使用Laravel Valet

Valet基于Caddy服务器,默认支持并发请求,无需额外配置。只要项目已通过Valet链接,就能直接处理并行请求。

3. 手动配置Nginx/Apache多进程

如果自己搭建本地Web服务器:

  • Nginx:在nginx.conf中设置worker_processes auto;,让Nginx根据CPU核心数自动创建工作进程,同时确保events块的worker_connections数值足够。
  • Apache:启用event MPM模块,调整httpd.conf参数:
    <IfModule mpm_event_module>
        StartServers             2
        MinSpareThreads         25
        MaxSpareThreads         75
        ThreadLimit             64
        ThreadsPerChild         25
        MaxRequestWorkers      150
        MaxConnectionsPerChild   0
    </IfModule>
    

4. 放弃使用artisan serve

artisan serve仅用于快速测试,本质是PHP内置单进程单线程服务器,完全不支持并发。换成上述任意一种多进程环境即可解决问题。

附你的代码片段

触发耗时请求的组件:

<button @click="apiCall()">Click Me</button>

对应Vue方法:

async apiCall() {
    const form = new FormData();
    form.append("stuff", this.stuff);

    this.data = await fetch('/api-1', {
            body: form,
            method: "POST",
        })
            .then((r) => r.json())
            .then((j) => {
                return j.data;
            });
}

自动补全输入框组件:

<input v-model="text" @input="secondApiCall()" />

对应Vue方法:

secondApiCall() {
 axios
      .post("/api-2", {
        text: this.text,
      })
      .then((r) => {
        console.log(r.data);
      })
      .catch((error) => {});
 }

内容的提问来源于stack exchange,提问作者user13493837

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 19:57:35