> PHP 프레임워크 > Laravel > Laravel 비동기 요청 구현

Laravel 비동기 요청 구현

王林
풀어 주다: 2023-05-20 17:18:39
원래의
1413명이 탐색했습니다.

웹 애플리케이션에서 비동기 요청은 매우 유용한 기술입니다. 백그라운드에서 요청을 실행함으로써 프런트엔드에서 서버 응답을 기다리면서 발생하는 시간 낭비를 방지하고 사용자 경험도 향상시킵니다. Laravel 프레임워크에서는 비동기 요청 기능을 구현하기 위해 몇 가지 메소드를 사용할 수 있습니다.

1. 비동기 요청이란

비동기 요청은 전체 페이지를 새로 고치지 않고 서버에 요청을 보내고 백그라운드에서 요청을 처리하는 기술입니다. 이 기술은 특정 작업의 진행률 표시줄을 표시해야 하거나 고객이 결제 성공을 느낄 수 있도록 결제 페이지를 자동으로 새로 고쳐야 하는 경우 등 다양한 시나리오에 적용될 수 있습니다.

2. Laravel에서 비동기 요청을 사용하는 방법

1. jQuery에서 ajax 메서드를 사용하여 비동기 요청을 구현합니다.

Laravel에서 jQuery와 함께 쉽게 사용하여 비동기 요청 기능을 구현할 수 있습니다. 다음 단계를 통해 이 프로세스를 완료할 수 있습니다.

먼저 jQuery 라이브러리 파일을 도입해야 합니다. 이 단계는 헤더나 HTML 템플릿 상단에서 수행할 수 있습니다.

<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
로그인 후 복사

다음으로 비동기 요청을 보내는 코드를 작성해야 합니다. 이 코드 조각은 사용자가 버튼을 클릭한 후와 같은 모든 이벤트 처리 기능에 포함될 수 있습니다.

$(document).ready(function(){
    $('#btn-submit').click(function(e){
        e.preventDefault();
        $.ajax({
            type: 'POST',
            url: '/payment',
            data: {
                'amount': $('#amount').val(),
                'payment_method': $('#payment_method').val(),
                '_token': $('input[name="_token"]').val()
            },
            success: function(data){
                console.log('success');
                console.log(data);
                //在此处将返回的data数据展示在前端页面上
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                console.log('error');
                console.log(XMLHttpRequest);
                console.log(textStatus);
                console.log(errorThrown);
            }
        });
    });
});
로그인 후 복사

2. Laravel의 대기열 기능을 사용하여 비동기 요청을 구현합니다.

Laravel의 맨 아래 레이어에는 백그라운드에서 작업을 실행하기 위한 대기열 시스템이 제공됩니다. 대기열 시스템을 사용하면 클라이언트가 서버 응답을 오랫동안 기다리는 문제를 방지할 수 있으며 더 나은 예약 및 최적화를 위해 모든 백그라운드 작업의 실행을 관리할 수도 있습니다.

다음으로 Laravel의 대기열 시스템을 사용하여 비동기 요청의 처리 단계를 정의하겠습니다.

먼저, 새로운 작업 클래스를 정의해야 합니다. 이 클래스는 기본 Laravel 작업 클래스를 상속하고 이 클래스에 handle() 메서드를 구현해야 합니다. 기본 템플릿은 다음과 같습니다. handle()方法。基本模板可以如下所示:

namespace AppJobs;
use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateFoundationBusDispatchable;
use IlluminateQueueInteractsWithQueue;
use IlluminateQueueSerializesModels;

class ProcessPayment implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $amount;
    protected $paymentMethod;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($amount, $paymentMethod)
    {
        $this->amount = $amount;
        $this->paymentMethod = $paymentMethod;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        //在此处执行异步请求所需的所有工作,比如HTTP请求或电子邮件发送。

        //处理请求完毕后将结果保存在数据库中,供前端页面读取。
    }
}
로그인 후 복사

接下来,我们可以将异步请求的处理逻辑放在handle()

public function submitPayment(Request $request)
{
    $amount = $request->input('amount');
    $method = $request->input('payment_method');
    ProcessPayment::dispatch($amount, $method); //触发异步请求任务
    return response()->json(['message' => 'success']);
}
로그인 후 복사
다음으로 handle() 메서드에 비동기 요청 처리 논리를 넣을 수 있습니다. 이 작업을 백엔드에서 수행하면 페이지 정지로 인한 사용자 경험 저하 문제를 피할 수 있으며 동시에 백엔드 실행 시간으로 인해 전체 요청 속도가 느려지는 일이 없습니다.

마지막으로 컨트롤러 메서드에서 이 작업을 트리거하여 비동기 요청 처리를 구현할 수 있습니다. 예:

rrreee

3. 요약

비동기 요청은 웹 애플리케이션 개발에서 매우 중요한 역할을 합니다. 비동기식 요청 기술을 사용하면 애플리케이션이 더 빠르고 원활하게 실행되어 사용자 경험이 향상됩니다. Laravel 프레임워크에서는 jQuery의 ajax 메소드나 Laravel의 대기열 시스템을 사용하여 비동기 요청 기능을 구현할 수 있습니다. 어떤 방법을 사용하든 다음을 염두에 두는 것이 중요합니다. 비동기식 요청은 애플리케이션을 더 빠르고 효율적이며 사용자 친화적으로 만듭니다. 이 기사가 비동기 요청을 구현할 때 도움이 되기를 바랍니다. 🎜

위 내용은 Laravel 비동기 요청 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿