2012-11-27 25 views
5

tôi nhận được một mảng từ trang web khác với việc giúp khách hàng SOAP, đó là mảng khá lớn, bạn có thể kiểm tra xem nó ra ngắn phiên bản đây
An arrayyêu cầu SOAP dùng quá lâu để xử lý dữ liệu lớn

tôi cần phải nhận được tên danh mục, mã của tôi ở đây, nó hoạt động nhưng làm chậm trang web. nếu có ai có thể cung cấp mã tốt hơn.

$client = new nusoap_client('http://87.253.63.146/b2b/b2bWS?WSDL', 'wsdl'); 
$client->soap_defencoding = 'UTF-8'; 
$client->decode_utf8 = false; 
$parametrebi = array('user' => '','brand' => '', 'vat_zone' => 'GEVAT', 'currency' => 'GEL', 'all_items' => 'Y', 'page_num' => '1', 'lines_per_page' => '25'); 

$result = $client->call('GetPriceList', $parametrebi, array('return' => 'xsd:string'), ""); 
foreach($result['PriceList']['categories']['category'] as $category) 
{ 
    echo '<option value="'.$category['!id'].'">'.$category['!name'].'</option>'; 
} 

Trả lời

0

Các danh mục có thay đổi thường xuyên không?
Bạn có thể thăm dò ý kiến ​​cho các danh mục thường xuyên không?

Ví dụ cứ 5 phút một lần để thực hiện cuộc gọi xà phòng này và lưu danh mục vào bảng trong DB (không phải ý tưởng hay) hoặc memcache.

http://memcached.org/

Nếu bạn có thể sử dụng memcache ... đây là một ví dụ ruff:

$memcache_obj = new Memcache(); 
$memcache_obj->connect('memcache_host', 11211); 

if(!$categories = $memcache_obj->get('soap_categories')) { 
$client = new nusoap_client('http://87.253.63.146/b2b/b2bWS?WSDL', 'wsdl'); 
$client->soap_defencoding = 'UTF-8'; 
$client->decode_utf8 = false; 
$parametrebi = array('user' => '','brand' => '', 'vat_zone' => 'GEVAT', 'currency' => 'GEL', 'all_items' => 'Y', 'page_num' => '1', 'lines_per_page' => '25'); 
$result = $client->call('GetPriceList', $parametrebi, array('return' => 'xsd:string'), ""); 
$categories = $result['PriceList']['categories']['category']; 
$memcache_obj->set('soap_categories', $categories) 
} 


foreach($categories as $category) 
{ 
    echo '<option value="'.$category['!id'].'">'.$category['!name'].'</option>'; 
} 

Bạn có thể thiết lập thời gian hết hạn vào memcache để 1,2,5 ... ect minuites nên các danh mục sẽ được cập nhật mỗi khi bộ nhớ cache hết hạn. Khác khi bộ nhớ cache hết hạn thời gian tra cứu sẽ ít hơn 5-10ms.

+0

cảm ơn bạn rất nhiều ... Tôi đã quyết định lưu trữ dữ liệu trong phiên, đó có phải là một ý tưởng hay không? Có giới hạn lưu trữ dữ liệu trong phiên không? – GioGio

Các vấn đề liên quan