其他页面中获得一个循环中当前进度的好办法
可能题目说的有点笼统,需求是这样的。
有一个群发邮件功能。有时候可能群发给几百个客户,所以要循环几百次。同时还有一个页面要实时看到本次的发送进度,动态显示发到第几封了。每次发送邮件时带的进程ID是不同的。
目前显示页面的处理逻辑是通过ajax定时查询邮件表中属于这个进程ID的总数是多少,然后返回中页面显示。这样感觉效率太低了。一遍发一遍查。请问有没有其他好的办法?
我试过在循环中将当前循环次数写入Session中,然后显示页面直接读Session值,但每次都是显示最终的结果。
关于php的线程我还不是很懂。请指教。
回复讨论(解决方案)
有用memchache或者别的缓存吗,循环脚本中写缓存;显示页面ajax请求后台读缓存
没有用memchche或其他缓存,我准备试试html5的localStorage不知道可以不。
普通方式的话,没有好的办法。也不建议楼主搞得复杂。建议楼主仍然使用ajax+数据库获取进度的方式,虽然没有那么高的实时性,但是足够达到工程需求了。发送邮件可以采用多线程,这样效率高很多。
要不就不要使用多线程了,使用更简单的吧。可以http://localhost/xxx.php启动多个php文件进行发送。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Long URLs, often cluttered with keywords and tracking parameters, can deter visitors. A URL shortening script offers a solution, creating concise links ideal for social media and other platforms. These scripts are valuable for individual websites a

Following its high-profile acquisition by Facebook in 2012, Instagram adopted two sets of APIs for third-party use. These are the Instagram Graph API and the Instagram Basic Display API.As a developer building an app that requires information from a

Laravel simplifies handling temporary session data using its intuitive flash methods. This is perfect for displaying brief messages, alerts, or notifications within your application. Data persists only for the subsequent request by default: $request-

This is the second and final part of the series on building a React application with a Laravel back-end. In the first part of the series, we created a RESTful API using Laravel for a basic product-listing application. In this tutorial, we will be dev

Laravel provides concise HTTP response simulation syntax, simplifying HTTP interaction testing. This approach significantly reduces code redundancy while making your test simulation more intuitive. The basic implementation provides a variety of response type shortcuts: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

The PHP Client URL (cURL) extension is a powerful tool for developers, enabling seamless interaction with remote servers and REST APIs. By leveraging libcurl, a well-respected multi-protocol file transfer library, PHP cURL facilitates efficient execution of various network protocols, including HTTP, HTTPS, and FTP. This extension offers granular control over HTTP requests, supports multiple concurrent operations, and provides built-in security features.

Do you want to provide real-time, instant solutions to your customers' most pressing problems? Live chat lets you have real-time conversations with customers and resolve their problems instantly. It allows you to provide faster service to your custom

The 2025 PHP Landscape Survey investigates current PHP development trends. It explores framework usage, deployment methods, and challenges, aiming to provide insights for developers and businesses. The survey anticipates growth in modern PHP versio
