郵件發送異常導致AJAX返回處理緩慢

來源:互聯網
上載者:User
有個問題想請教下:
我在JS端使用ajax,執行的是非同步方式,
當判斷xmlhttp.readyState == 4時,會處理服務端返回的一些資料,並作提示。

問題是:
最近發現在老是要等很久才能捕獲到服務端返回的資料;
經過追查發現是PHP在處理一個MAIL函數時等待很久。MAIL函數只是處理一個很簡單的郵件發送。
之前也沒有這樣的問題。可能是伺服器哪裡出現了異常。

深入探索應該是在等待該MAIL函數的執行導致了服務端返回的等待。

請教下是否有辦法解決?該MAIL函數一定要在AJAX調用背景時候執行。


回複討論(解決方案)

php不支援多線程,可以將mail函數操作獨立出來,或者將mail函數要做的事情,放到一個暫存資料表中,定時去發。

這個跟多線程無關吧?只是這兩天伺服器的MAIL功能好像在返回時有點延遲-(實際上已經有寄信出去),採用的是LINUX的MAIL功能-才會有這個問題。

你的問題很奇怪!
既然你需要等待 mail 的返回,那又怎麼能繞過去呢?

如果你要等待mail函數返回結果給你,那就不能繞過它了,我的理解有誤了

你的問題很奇怪!
既然你需要等待 mail 的返回,那又怎麼能繞過去呢?



我不需要等待MAIL的返回啊

我程式裡有一句MAIL(),我刪除就能正常快速響應;查了手冊,MAIL函數會返回TRUE/FALSE。
所以我才在猜是不是因為等待MAIL的返回導致速度這麼慢。

怎麼說呢,我說的等待返回,不是我自己要等待返回的!

按照AJAX的非同步方式,只有伺服器完全相應返回才會返回xmlhttp.responseText對吧。

我在猜是不是因為執行了mail()函數後,用戶端一直在等待這個函數返回TRUE或者OR才會變得這麼慢的。

問題應該也是這樣,我去除了該語句,其他都能正常執行,xmlhttp.responseText也很快就能捕獲到值。

所以有沒有辦法在不去除MAIL語句的情況下,正常快速的響應呢?

mail和發郵件有關,首先檢查一下郵件伺服器配置(找專業人士)。
或者你最佳化下代碼,將你要發的郵件放到一個暫存資料表,linux加crontab 裡面定時來用mail函數發。

既然你不需要等待 mail 的返回,那就按 nowphp 收的思路做
當然也就不能及時知道郵件是否發出了

應該是郵件伺服器的問題。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.