2012-02-15 30 views
5

Portalımı daha çekici ve kullanımı kolay bir arayüz haline getirmek için IGoogle bileşen inettuts kullanıyorum. Sormak istediğim asıl sorun şudur:IGoogle bileşeninin kişiselleştirme ayarını nasıl depolarım?

  • Kullanıcı, uygulama tekrar oturum açtığında varsayılan hale getirmek için kişiselleştirme ayarını nasıl kaydederiz? Benim veritabanında bu verileri depolamak gerektiğini düşünüyorum bu yüzden kullanıcı makinesine bağlı çünkü

Kurabiye kullanamaz. Ama ben başlangıcı bilmiyorum. Veritabanının yapısı nasıl olmalı? Ve depolama mekanizması nedir? Yani, kullanıcının her bir eylemini saklamalı mıyım yoksa tüm eylemleri tek bir işlemde mi yapmalıyım?

Ben Informix veritabanını kullanır, bu yüzden hiçbir üyelik yüzden web bölümleri kullanamazsınız.

Umarım birileri tüm ayarları performans açısından nasıl saklayacağımıza dair bir açıklamada bana yardımcı olabilir.

+1

Onun kolay değildir. Öncelikle savePreferences javascript'ini alın ve sonucu string'e almak için değiştirin, ardından bu dizgeyi ajax kullanarak kullanıcı ayarlarında veritabanına kaydedin. Ve yükte bu dizeyi okuyorsunuz ve inettuts.js başlangıç ​​referansına ekliyorsunuz. Birçok adım. – Aristos

+1

DBMS seçimi neredeyse tamamen bu süreç için rastlantısaldır. Kişiselleştirmeyi çerez olmadan nasıl yapacağınızı ayırmanız gerekir. Kullanıcı sisteminize girerse, o zaman nispeten bir parça kek. Buna benzeyen resmi bir mekanizma yoksa, o zaman çerezleri kullanamazsanız veya kullanmazsanız kesinlikle bir acı dünyasındasınız demektir. Başvuruda bulunduğunuz öğretici, çerezlerin nasıl kullanılacağını açıklar (başlık başa gelecek bir şeyse). –

cevap

2

Yapabileceğiniz tek şey, depolama istemcisinin tamamını oluşturmaktır. Yeni tarayıcılarda, dizeleri oturumlar boyunca kalıcı olarak saklayabilen bir localStorage değişkeni vardır. Ama bu şekilde, bilgisayarlarını değiştirdiklerinde, tercihler kaybolur.

Başka bir seçenek JavaScript tüm yapılandırma, ama bir JSON Store gibi arka uç kullanmaktır.

var settings = { 
    components:[ 
     { 
      'title': 'Foo', 
      'state': 'opened' 
     }, 
     { 
      'title': 'Bar', 
      'state': 'opened' 
     } 
    } 
} 

function close_component(index) 
{ 
    settings.components[index].state = 'closed'; 
    save_settings(); 
} 

var save_settings = function() { 
    $.ajax({ 
     url:'/settings/save', 
     data: { 
      'settings': JSON.stringify(settings) 
     } 
    }; 
}