簡體   English   中英

如何在不使用外部php文件的情況下執行ajax(jquery)功能

[英]How to perform ajax (jquery) functionality without using an external php file

當前場景:

我正在使用gmail oauth api來接收頁面上的電子郵件。 加載速度很慢,因此我想在加載時在頁面上發布每封電子郵件,從而使用戶有機會在仍加載電子郵件的同時在網站上執行其他操作。

需要一些文件

require_once 'common.php';
require_once 'Zend/Oauth/Consumer.php';
require_once 'Zend/Crypt/Rsa/Key/Private.php'; 
require_once 'Zend/Mail/Protocol/Imap.php';
require_once 'Zend/Mail/Storage/Imap.php';
require_once 'Zend/Mail.php';

和主頁上的一些功能可以幫助php運行。 我熟悉在jquery上使用ajax調用來調用外部php文件。 我希望能夠在此頁面上實例化php代碼以使用Ajax功能運行,因此我不必擔心每次查看新電子郵件時都會調用這些必需的文件和功能。 有沒有辦法做到這一點?

  for ($i = $storage->countMessages(); $i >= ($storage->countMessages()-30); $i-- ){ 
 { 
  echo '<li>' . $storage->getMessage($i)->subject . '</li>'; 
 }

  } 

是我想即時運行的功能,並且一次返回每個主題一次以加載到屏幕上。 我假設我需要使用javascript創建一個for循環,但是主要的問題是能夠使用頁面上的php,這樣我就不必每次都調用include了。 也許我對更改這些變量的范圍感到好奇,也許解決方案是能夠在沒有外部腳本的情況下從此頁面操作ajax-我不確定,但是可以提供任何幫助。

首先,不要擔心6個include的性能。 當您的網站規模龐大時,您就開始擔心這一點。 話雖如此,利用操作碼緩存(例如APC)可以降低包含大量文件的性能成本。

給您的問題:對PHP的每個請求都是它自己的實體,不能引用另一個請求中包含的代碼。 您的原始請求和每個后續的AJAX請求都是相互獨立的請求,彼此之間一無所知,並且都需要PHP加載所有文件才能加載電子郵件。

我建議您考慮其他提高性能的方法。 鑒於從gmail加載電子郵件的速度很慢,也許您可​​以使用將電子郵件同步到數據庫的守護程序(在服務器后台連續運行的服務)進行調查。 這樣,您的頁面就可以從數據庫中獲取所需的一切,這對於用戶而言將更快。 您可以使用AJAX定期檢查數據庫中的新數據。 同時,您的守護程序將在后台進行艱苦的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM