2009-02-28 30 views
5

ile kayıt tutmak için bir uygulama başlatmak Ben özel bir dize için ziyaret her sayfa tarama benim greasemonkey komut dosyası var. Bir dizideki varyasyonları bir sqlite db olarak kaydetmek istiyorum. Bir süredir başka bir uygulama süreci bu db everyonce olacak. Bilmiyorum, verileri sqlite db'ye nasıl kaydederim? Dize bulundu eğer otomatik olarak bir yürütülebilir başlatmak başarabileceğini düşünüyordum ama javascript aracılığıyla bunu yapmak için bilmiyorum. Başka bir alternatif, bir soketin belli bir limanda dinlendiğini ve js sihrine sahip olduğunu düşündüm ama bu şekilde veri göndermenin sessiz bir yolunu düşünemedim.greasemonkey

cevap

1

Ben Greasemonkey ile kullanabilirsiniz emin değilim ama Firefox bir sqlite veritabanı kullanarak için Depolama adlı bir API vardır. Buradan bakın:

0

Sen greasemonkey komut çağrısı (eğer saklanan istediğiniz verileri gibi) bazı değişkenlerle bir url olabilir. Ajax isteklerini kullanın. Bunları işlemek için yerel olarak bir web sunucusu kurulumuna sahip olabilirsiniz.

pencerelerde size, hızlı bir web sunucusu kusmak WAMP kullanabilirsiniz. Sadece php_sqlite uzantısını etkinleştirdiğinizden emin olun.

Bu, bazı uygulama özellikleri ile size yardımcı olabilir: http://www.pathf.com/blogs/2006/07/bjax_with_greas/

2

Ayrıca kaputun altında bir SQLite veritabanını kullanır Google Gears uzantısını kullanmayı düşünün isteyebilirsiniz.

3

Verileri toplamak için web sunucusu kullanmanızı öneririm. Verileri göndermek için bir alan veya IP kurabilirsiniz. Sadece başlamak için ihtiyacınız varsa, localhost üzerinde bile çalıştırabilirsiniz.

avantajı

sizden komut dosyasını çalıştırmak herhangi bir bilgisayar sonuçlarını paylaşabilmesi kez oluşturulan, yani aynı mimari, farklı bilgisayarlardan kullanılabilir olduğunu.

Güncelleme: sizin sunucusuyla iletişim kurmak için size GM_xmlhttpRequest kullanmanız gerekecektir. GM_xmlhttpRequest'i daha kolay kullanabilmek için bir soyutlama katmanı ekleyen bir kitaplık biliyorum: Speakeasy.js. RESTful bir web sunucusundan veri göndermek ve almak için nispeten bilinmeyen hafif ActiveResource benzeri bir arabirimdir. Her sayfa yükünde bir web sunucusu ile iletişim kuran bir Greasemonkey komut dosyasının Here's an example. Ek açıklamalar yükler ve bunları sayfada görüntüler.

// ==UserScript== 
// @name   Demo Script 
// @namespace  http://example.com 
// @description Sample 
// @include  * 
// 
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js 
// @require  http://strd6.googlecode.com/svn/trunk/gm_util/d_money.js 
// @require  http://strd6.googlecode.com/svn/trunk/gm_util/speakeasy.js 
// 
// ==/UserScript== 


error = D$.error; 
log = D$.log; 
D$.debug(false); 


Speakeasy 
    .generateResource('result') 
    .configure({ 
    baseUrl: 'http://localhost:3000/' 
    }) 
; 


// Attach all annotations for this page from remote server 
var href = window.location.href; 
currentUrl = href.substring(href.indexOf('://') + 3); 
log(currentUrl); 

var result1 = 'something'; // Insert your function to get your result data 
var result2 = 'something else'; // Insert your function to get your result data 

Speakeasy.result.create({ 
    data: { 
    url: currentUrl, 
    result1: result1, 
    result2: result2 
    } 
}); 

hızla aşina ne olursa olsun arka uç Rails site veya kullanımını oluşturabilirsiniz:

İşte ihtiyaçlarınıza yakın bir uyarlanmış versiyonu.

+0

i gezinirken nasıl ben sitemde veya localhost veri göndermek istiyorsunuz? Her sayfayı otomatik olarak taramalı ve sessizce yollamalı –

+0

Bu örnekte "result1" ve "result2" değişkenleri istediğiniz verileri tutacaktır. Sadece sitenin tüm HTML'sini istiyorsanız, document.body.innerHTML'yi kullanın. Aksi takdirde, sayfayı buna göre filtreleyin. Bu veri, tüm sayfalarda yürütüldüğünden, her sayfa yükünde veri gönderilecektir. – PotatoEngineer

1

Ya da sadece LubeMonkey, ve daha gelişmiş bir Greasemonkey çatalını sqlite desteğiyle kullanabilirsiniz. Yüklenen her betik kendi sqlite db'sini yaratır ve bu db içinde sorgu güncellemeleri vb. Yürütebilir, hatta db veya herhangi bir veri üzerindeki görüntüleri önbelleğe alabilirsiniz. buradan alın http://www.gamecore.org

İlgili konular