IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  digitalpanel

Etiketlenen Kullanıcılar

3Beğeni(ler)
  • 2 Post By ChuckyFun
  • 1 Post By YazılımMimarı

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 26 Ocak 2016, 13:38   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Web Services Caller Function (Javascript)




Merhaba,

Web servis kullandığım neredeyse bütün projelerde kullandığım bir javascript fonksiyonu, kullanımı oldukça kolaylaştıran bir yapıdır. Bir çoğunuzun işine yarayacağına eminim.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<script type="text/javascript">
    
/**
     *
     * parameters_object için tanımlı değişkenler
     *
     * custom_success_function: Servis başarıyla cevap döndürdüğünde çağırılacak varsayılan fonksiyonun dışında bir fonksiyon adı
     * custom_error_function: Servis başarıyla cevap döndürmediğinde çağırılacak varsayılan fonksiyonun dışında bir fonksiyon adı
     *
     * Kullanımı
     *
     * var parameters_object = { user_id: 1, receiver_user_id: 2, conversation_id: 3 };
     * call_web_service('get_messages', parameters_object, 'GET');
     *
     * param action: Web servisin adı
     * param parameters_object: Web service gönderilecek parametrelerin bulunduğu obje
     * param ajax_type: GET veya POST, default olarak GET
     * param base_url: Eğer default servisin yolundan farklı bir servise gönderecekseniz bu parametreyide gönderebilirsiniz.
     * returns {boolean}
     * 
     */
    
function call_web_service(action,parameters_object,ajax_type,base_url){

        
// Bazı kontroller için ajax çağırımının başladığını belirtiyoruz
        
ajax_running true;

        if(
action.length>1){
            
            
// Eğer web servis ismi varsa herşey yolunda demektir
            
        
}else{
            
            
ajax_running false;
            return 
false// Web servis ismi boş olduğu için fonksiyonu burada kesiyoruz
            
        
}

        var 
post_data=parameters_object;
        var 
parameters_object_length=Object.keys(parameters_object).length;

        if (
parameters_object_length>0){
            
            
// Eğer gönderilen obje boş değilse herşey yolunda demektir
            
        
}else{
            
            
ajax_running false;
            return 
false// Hiç bir veri gönderilmediği için fonksiyonu burada kesiyoruz
            
        
}

        
submitted_ajax_type="GET"// Varsayılan olarak GET ayarlandı, POST işlemini yalnızca şifre eposta veya kredi kartı gibi bilgileri gönderecekseniz kullanmanızı tavsiye ediyorum
        
        
if(ajax_type=="POST"){
            
submitted_ajax_type="POST";
        }

        if(
base_url.length>5){
            
            
// Eğer farklı bir servis yolu girilmişse başına çift slash ekliyoruz
            
base_url="//"+base_url;
            
        }else{
            
base_url=""// Girilmemişse boş bırakıyoruz
        
}

        
// jQuery ajax fonksiyonu yardımıyla web servisimizi çalıştırıyoruz
        
$.ajax({
            
typesubmitted_ajax_type,
            
urlbase_url+"/web_services/"+action+"/?",
            
cache:     false,
            
data:     post_data,
            
success: function(data) {

                
ajax_running=false;

                
// Servis başarıyla cevap verdiğinde otomatik olarak bu servise ait bir başarılı fonksiyonu çağırıyoruz
                // Örneğin servisin adı get_messages ise başarıyla cevap döndüğünde success_get_messages fonksiyonu çağırılıyor
                // Eğer başarıyla cevap döndüğünde çağırılmasını istediğiniz fonksiyon farklı ise bunu gönderilen parametreler arasına 'custom_success_function' adıyla eklemeniz gerekmektedir
                
if(typeof parameters_object.custom_success_function != 'undefined' && typeof window[parameters_object.custom_success_function] === 'function') {
                    
window[parameters_object.custom_success_function](data,parameters_object);
                } else if (
typeof window["success_"+action] === "function"){
                    
window["success_"+action](data,parameters_object);
                }
                else{
                    
// Fonksiyon bulunamadı ama her şey yolunda, cevap başarıyla döndü
                
}

            },
            
error: function(data){

                
ajax_running=false;

                
// Servis başarıyla cevap vermediğinde otomatik olarak bu servise ait bir hata fonksiyonu çağırıyoruz
                // Örneğin servisin adı get_messages ise başarıyla cevap dönmediğinde error_get_messages fonksiyonu çağırılıyor
                // Eğer başarıyla cevap dönmediğinde çağırılmasını istediğiniz fonksiyon farklı ise bunu gönderilen parametreler arasına 'custom_error_function' adıyla eklemeniz gerekmektedir
                
if(typeof parameters_object.custom_error_function != 'undefined' && typeof window[parameters_object.custom_error_function] === 'function') {
                    
window[parameters_object.custom_error_function](data,parameters_object);
                } else if(
typeof window["error_"+action] === "function"){
                    
window["error_"+action](data,parameters_object);
                }
                else{
                    
// Fonksiyon bulunamadı ve servis başarıyla cevap döndüremedi !
                
}

            }
        });
    }

    
/**
     *
     * Servis başarıyla cevap döndürdüğünde çağırılan varsayılan fonksiyon
     *
     * param data: Servisten dönen veriler
     * param parameters_object: Servise gönderdiğimiz veriler
     *
     */
    
function success_get_messages(dataparameters_object) {
        
console.log(data);
    }

    
/**
     *
     * Servis başarıyla cevap döndürmediğinde çağırılan varsayılan fonksiyon
     *
     * param data: Servisten dönen veriler
     * param parameters_object: Servise gönderdiğimiz veriler
     *
     */
    
function error_get_messages(dataparameters_object) {
        
console.log(data);
    }
</script> 

Alıntı değildir.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet sohbet
Alt 07 Ocak 2017, 14:11   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Web Services Caller Function (Javascript)




Elinize sağlık.

Teknik açıdan okunabilirlik adına iyileştirmeler yapılabilit.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
ajax_running = true; if(action.length>1){ // Eğer web servis ismi varsa herşey yolunda demektir }else{ ajax_running = false; return false; // Web servis ismi boş olduğu için fonksiyonu burada kesiyoruz }

daha anlaşılır ve okunabilir hali..

else'e gerek duymadan.. eğer validate değil ise, akışı kes.

if(action.length<1){
return false; // Web servis ismi boş olduğu için fonksiyonu burada kesiyoruz
}

---

ajax_running -> bu değişken ne işe yarıyor pek kesitremedim.

validate olmayan her noktada false atanmış. ws call sonrasındaki fail/sucess durumundada false atanmış.

Kafa karışıklığı dışında herhangi bir katkısı yok anladığım kadarıyla, olmasada olur bu fonksiyon için.


Diğer açıdan, PUT tipini gönderilse fonksiyonu çağıran GET gibi davranacak, bu da bir diğer handikap.


Kolay gele.

 
Alıntı ile Cevapla

Alt 07 Temmuz 2017, 18:04   #3
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Web Services Caller Function (Javascript)




"ajax_running" değişkeni benim projemde bir sayfada aynı anda birden fazla web servis çalışmaması durumları için kullanılıyordu.

 
Alıntı ile Cevapla

Cevapla

Etiketler
caller, function, javascript, services, web, web servis


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
mysql function ve procedure tanımlama Kaf_Dağı Delphi 0 18 Mart 2015 14:16
sayıyının önünü 0 doldurup string yapan function Kaf_Dağı Delphi 0 18 Mart 2015 14:13
Anti-SQL Injection Function hAte PHP 0 07 Kasım 2014 06:33
<html> <head> <title>Test</title> <script type="text/javascript"> var newCount; function timer(position,count) { if (po hAte HTML/CSS/JavaScript 0 10 Ekim 2014 03:54