2011-09-24 34 views
18

爲了進行高效的服務器端解析,我正在直接調查瀏覽器JavaScript環境的BSON解決方案。這個想法是通過二進制websockets來利用整個ASCII空間。有什麼建議麼?是瀏覽器提供的二進制JSON JavaScript庫嗎?

(任何建議的NodeJS歡迎以及)

參見: http://bsonspec.org/

+2

我不知道你爲什麼會想這樣做?只需將JSON傳遞給客戶端/瀏覽器/從客戶端/瀏覽器傳遞,然後按照服務器上的意願轉換爲BSON。 –

+0

JavaScript實際上對低級操作沒有多少支持 - 就像那些允許BSON比JSON更高效的操作一樣 - 所以你可能不得不使用Flash ... –

+2

@ChrisPietschmann:這會將我限制爲HTTP並且例如JSON中的整數必須被解析,而不是直接分配的可能性。 (打算在服務器上的負載也較小) –

回答

11

對於它的價值,似乎MongoDB的團隊現在有一個支持的Javascript BSON項目:

https://github.com/mongodb/js-bson

我與圖書館的專家,但該項目聲稱在這兩個節點工作和瀏覽器。下面是從他們的網站修改樣本:

<head> 
    <!-- Originally https://raw.github.com/mongodb/js-bson/master/browser_build/bson.js --> 
    <!-- But downloaded and hosted locally --> 
    <script src="./bson.js"></script> 
</head> 
<body onload="start();"> 
<script> 
    function start() { 
    var BSON = bson().BSON; 
    var Long = bson().Long; 

    var doc = { 
     oid: bson().ObjectID(), 
     long: Long.fromNumber(100), 
     date: new Date(), 
     string: "js-bson sample", 
     obj: { 
     string: "Object within an object" 
     } 
    } 
    console.log("doc %o", doc); 

    // Serialize a document 
    var data = BSON.serialize(doc, false, true, false); 
    console.log("data %o", data); 

    // De serialize it again 
    var doc_2 = BSON.deserialize(data); 
    console.log("doc_2 %o", doc_2); 
    } 
</script> 
</body> 

下面是我的結果在Chrome:

enter image description here

+3

是的,它在瀏覽器中支持,有一個瀏覽器版本提供:https://github.com/mongodb/js-bson/tree/master/browser_build也可以通過安裝涼亭使用「涼亭安裝bson - 保存」 – arcseldon

+0

@SamuelNeff - 這根本不正確。它不僅得到官方的支持,而且我看到它被用於多個項目。我自己也使用過它。 – JSON

+0

@JSON,當我在兩年前發佈時,它是來自網站本身的引用。它說「在MongoDB本地驅動程序中使用的節點的JS/C++ Bson解析器」。從那時起他們已經改變並明確聲明他們支持瀏覽器。 –

相關問題