2009-12-20 4 views
5

Ich habe RJS in der Vergangenheit für RoR-Projekte verwendet und fühlte mich schrecklich eingeschränkt durch, was es tun könnte. Allerdings fühlt sich das Verwenden von Javascript allein hässlich und hackig an. Dies gilt insbesondere, wenn Sie Javascript schreiben, das automatisch generierte Rails aus Variablennamen manipuliert. Ich habe in letzter Zeit nicht viel über RJS in der Blogosphäre gesprochen. Wird RJS in neuen RoR-Projekten eingesetzt oder haben Leute entschieden, dass es nicht effektiv ist? Wird es immer noch aktiv entwickelt und seine Funktionsabdeckung erweitert? Ich würde mir einen Einblick in den aktuellen Stand der Dinge wünschen.RJS oder Javascript?

Also, wer benutzt RJS (und wie funktioniert es für dich) und wer benutzt Javascript?

Antwort

4

Ich empfehle gerade Javascript zu schreiben. Ich glaube, dass - ja - RJS aus der Mode kommt. Ein Grund dafür ist die Beliebtheit der sexy jQuery-Bibliothek. Ein anderes ist das Modell von RJS - in dem es ein Rubin Wrapper um Javascript ist, und so für jede Javascript Bibliothek, die Sie verwenden müssen, benötigen Sie eine entsprechende Ruby Wrapper-Bibliothek, was mehr Arbeit bedeutet, die jemand tun muss (und ein weiteres Juwel, auf das du dich verlassen musst). Auch wenn die Idee, eine Anfrage zu machen und ausführbares Javascript zurückzubekommen, nett ist, glaube ich, dass es viele gibt, die diesen Stil nicht mögen oder zumindest nicht für bestimmte Situationen halten. Ich persönlich habe Javascript gelernt und bin gekommen, es zu mögen, und ich empfehle Ihnen, es zu versuchen.

+0

Dies ist die Art oder Antwort, nach der ich gesucht habe. Gab es eine explizite Diskussion über die Zukunft von RJS, die ich mir anschauen könnte? Wenn nicht, warum hast du das Gefühl, dass es aus der Mode kommt? Ich kenne JS, weshalb ich debattiere, welche für mein nächstes Projekt zu verwenden. Ich kann über technische und leicht zu entwickelnde Gründe herausfinden, die ich verwenden kann, aber ich bin besorgt über die Zukunft von RJS insgesamt. –

1

RJS war nie als Ersatz für JavaScript gedacht, und Sie sollten nicht entscheiden, welches Tool für den Job geeignet ist, basierend auf dem, was Sie denken, dass Sie ein anderes Kind in der Blogosphäre sehen.

+0

Nicht einverstanden. Wenn Menschen an RJS nicht interessiert sind, wird es nicht weiter unterstützt, entwickelt, bearbeitet und allgemein sichtbar gemacht. Ich würde lieber nicht weiter in die Arbeit investieren, wenn die Leute es nicht mehr benutzen. Die RJS-Community ist eine Untergruppe der JS-Community, so dass es bereits schwierig ist, herauszufinden, wie man Dinge in RJS im Vergleich zu JS tut. Wenn RJS * aus der Mode kommt *, kann ich mir vorstellen, dass sich diese Situation verschlimmert. Also ja, ich möchte wissen, was andere Leute tun und wo sie ihre Zeit und Energie investieren. –

+0

Ich denke, was @NSD zu sagen versucht, ist, dass Sie sich nicht dafür entscheiden sollten, eine bestimmte Technologie zu verwenden, nur weil andere Leute sie benutzen; Das schließt jedoch nicht aus, dass * es nicht benutzt wird, weil andere Leute es nicht benutzen. –

+0

Richtig, aber ich habe gefragt, ob die Leute es nicht mehr benutzen. –

2

Mit RJS nehme ich an, dass Sie sich auf RJS-Vorlagen beziehen. Das ganze Konzept besteht darin, dass Sie JavaScript generieren, das in einer JS eval-Funktion im Browser als AJAX-Rückgabe ausgeführt wird. Wie genau war es, dass Sie sich "schrecklich eingeschränkt fühlten von dem, was es tun könnte"? Sie können Ruby und JS in den RJS-Dateien auf verschiedene Arten mischen, und es ist nicht einschränkender als andere ERB-Formate. Es ist eine sehr leistungsfähige Möglichkeit, AJAX-Aufrufe mehr als nur eine einzige Aktualisierung <div> zu machen (sie können sogar zwei <div> s aktualisieren).

Ich habe das Gefühl, dass Sie wirklich Fragen über die Verwendung von JavaScript/Prototype/Scriptaculous Helpers sind. Ist das so?

+1

Ich stimme Matt zu. Ich denke, der Grund dafür, dass RJS auf der Strecke bleibt, ist, dass JS für die Prototype-Bibliothek generiert wird, es sei denn, Sie verwenden ein Plugin, das die Hilfsmethoden außer Kraft setzt, und viele Entwickler nehmen JQuery auf. Wenn Sie Prototype verwenden, ist die völlige Nichtbeachtung von RJS völlig unbegründete IMO. –

1

Ich persönlich mag nicht die js von den Helfern generiert, so dass ich normalerweise entscheiden, sie nicht zu verwenden. Es gibt jedoch Zeiten, in denen sie ziemlich bequem sind.

Es gibt auch einen Jquery Ersatz, Jrails, wenn Sie kein Prototyp Fan sind.

Aber ich muss NSD zustimmen. Warum würdest du zulassen, was andere letztendlich tun? Wenn Ihnen die Art und Weise, wie die Helfer arbeiten, nicht gefällt oder sie es nicht für Ihr Projekt tun, verwenden Sie sie nicht. Oder wenn es etwas fehlt, schreibe dein eigenes. Und vielleicht kannst du dadurch etwas Interesse wecken.

Wie für investierende Zeit, ist es Wissen.

4

ich RJS mag mit für einfache Aufgaben, wie:

page["post_#{@post.id}"].replace :partial => @post 
page["post_#{@post.id}"].highlight 

Ja, man könnte dies mit der link_to_remote Funktion direkt tun, aber das nur mit dem Code Ihre Ansicht unübersichtlich, oder mit einem update_page in der Steuerung , aber das ist hässlich .. die rjs erlaubt es dir, klarer verständlichen Code zu schreiben, der von einer Javascript Bibliothek abgekoppelt ist (da es Dinge wie jrails gibt, oder du kannst einfach die Methoden der Rails selbst außer Kraft setzen.)

Wenn Sie eine wirklich komplexe JavaScript-Funktion für Ihre Anwendung haben, würden Sie wahrscheinlich besser bedient werden, indem Sie das Javascript selbst schreiben, da Sie sich zu diesem Zeitpunkt nicht auf die Abstraktionen von Rails verlassen wollen.

Verwandte Themen