358:
131:
25:
283:
Many-to-many (N-N) relations are displayed as two 1-N views mirroring each other. For example, in a Film-Actor database where a film may have multiple actors, and an actor can be in multiple films, the Film details view lists the actors on its "Related
Records" section. Clicking on an actor would
279:
One-to-many (1-N) relations are shown in the form of "Related
Records". For example, in a Company Directory application a company may have multiple contact persons. In the "Companies" list view, each item points to a Company record. In the tabbed company record view, the basic information such as
275:
The
Gyroscope UI represents typical data relations such as one-to-many, many-to-many and foreign-key-reference with application-level visual concepts. For example, tables are typically shown as "Entry Points". The most significant columns in a data table are used to display the records in a "List
298:
On the client side, Gyroscope supports all the XHR-enabled web browsers. This include legacy browsers as ancient as
Internet Explorer 5.5. Features from modern browsers progressively enhance the Gyroscope user experience. For example, web socket, desktop notification, speech synthesis and voice
318:). In the LCHH architecture, a Loader, or a "DIV" container with a unique identifier is populated with default Content. Visual affordances, also known as "triggers" that are included in the Content invoke client-side handlers. These JavaScript handlers then sends
333:
LCHH can be viewed as a subtle variant of MVC where the focus is on the View (Loader, Content) and
Controller (Client-side Handler and Server-side Handler). The implementation of the data source, or the "Model" is largely left to developer's discretion.
326:) requests to Server-side Handlers. The Server-side scripts then perform updating, insertion or deletion functions before piggybacking the updated View back to the original Loader via AJAX callback and
280:
company name and address are displayed in the main section of the details view. The "Related
Contacts" are listed on the side. Click on a contact item will open the contact details in a separate tab.
295:
The
Gyroscope backend runs on all versions of PHP. Developer features such as the Code Generator requires PHP 5.4 and above because of the use of parent scoping in anonymous functions.
330:
update. The benefit of the LCHH architecture is that its execution path is identical to the life cycle of an HTTP request. This design has both performance and debugging advantages.
1181:
287:
Tabs in
Gyroscope are not browser tabs. They are logically tabs within the web application. Gyroscope's tab system ensures that no duplicate tabs can open for the same record.
302:
Gyroscope is agnostic of the data layer. Any data source that supports CRUD operations can drive a
Gyroscope application. The default code generator uses MySQL syntax.
345:
267:
for building web backend systems. Gyroscope uses a specific and yet flexible user interaction model to reveal and explore the inner-relations of a database.
1381:
469:
449:
1396:
534:
42:
363:
108:
89:
284:
pivot the view, by displaying in a separate tab, the basic information of the actor, putting his/her related films on the side.
276:
View". Each item in the list view opens the record in a Tab where the rest of the columns are displayed in a key-value format.
61:
851:
315:
46:
1359:
1335:
1315:
1087:
68:
1244:
442:
371:
1349:
1226:
1193:
699:
264:
172:
75:
1301:
35:
651:
57:
1391:
1386:
1331:
1206:
1150:
772:
631:
435:
1234:
1155:
1110:
826:
684:
1120:
861:
641:
327:
1252:
1160:
1125:
786:
636:
502:
1017:
899:
719:
539:
1311:
1285:
1216:
1007:
957:
669:
664:
212:
82:
1355:
1037:
1032:
909:
904:
572:
517:
395:
311:
143:
1052:
982:
856:
714:
595:
587:
577:
222:
729:
130:
1257:
1145:
1140:
1002:
754:
694:
319:
1375:
1211:
744:
724:
689:
512:
458:
866:
791:
709:
497:
492:
1042:
942:
914:
821:
781:
605:
507:
257:
227:
24:
1345:
1341:
1165:
1022:
972:
952:
871:
801:
764:
704:
549:
529:
391:
353:
205:
138:
238:
1272:
1067:
962:
776:
749:
417:
1280:
1262:
1105:
1100:
1027:
831:
796:
679:
674:
1321:
1115:
1057:
997:
992:
967:
937:
846:
841:
836:
659:
623:
613:
544:
487:
1305:
1170:
987:
947:
919:
881:
876:
816:
806:
739:
734:
567:
524:
559:
1130:
1072:
1062:
1047:
427:
1201:
1175:
1135:
1095:
1012:
891:
811:
479:
323:
431:
1325:
1077:
929:
343:
260:
201:
18:
299:
recognition are used if they are available in the browser.
314:) architecture instead of explicit Model-View-Controller (
1294:
1271:
1243:
1225:
1192:
1086:
928:
890:
763:
650:
622:
604:
586:
558:
478:
310:
Gyroscope uses the Loader-Content-Handler-Handler (
233:
221:
211:
197:
171:
149:
137:
49:. Unsourced material may be challenged and removed.
443:
8:
123:
450:
436:
428:
122:
109:Learn how and when to remove this message
383:
7:
364:Free and open-source software portal
47:adding citations to reliable sources
14:
392:"Antradar Gyroscope: Release 1.1"
356:
129:
23:
1382:Free software programmed in PHP
34:needs additional citations for
1397:Software using the BSD license
1:
420:. Antradar. October 10, 2013.
372:Comparison of web frameworks
700:Remote Application Platform
178:16.7 / May 17, 2020
1413:
338:Gyroscope release timeline
465:
193:
167:
128:
58:"Gyroscope" software
16:Open-source web framework
271:User Interaction Model
155:; 15 years ago
153:November 20, 2008
263:framework and a code
180:; 4 years ago
320:XmlHTTPRequestObject
43:improve this article
1302:Application Express
245:/docs-gyroscope-doc
125:
398:. December 9, 2011
124:Antradar Gyroscope
1369:
1368:
251:
250:
119:
118:
111:
93:
1404:
596:ColdBox Platform
452:
445:
438:
429:
422:
421:
414:
408:
407:
405:
403:
388:
366:
361:
360:
359:
247:
244:
242:
240:
188:
186:
181:
163:
161:
156:
133:
126:
114:
107:
103:
100:
94:
92:
51:
27:
19:
1412:
1411:
1407:
1406:
1405:
1403:
1402:
1401:
1372:
1371:
1370:
1365:
1295:Other languages
1290:
1267:
1239:
1221:
1188:
1082:
924:
886:
759:
646:
618:
600:
582:
554:
474:
461:
456:
426:
425:
416:
415:
411:
401:
399:
390:
389:
385:
380:
362:
357:
355:
352:
347:
346:
344:
340:
308:
293:
273:
265:template system
237:
189:
184:
182:
179:
159:
157:
154:
150:Initial release
115:
104:
98:
95:
52:
50:
40:
28:
17:
12:
11:
5:
1410:
1408:
1400:
1399:
1394:
1392:Web frameworks
1389:
1387:PHP frameworks
1384:
1374:
1373:
1367:
1366:
1364:
1363:
1353:
1339:
1329:
1319:
1309:
1298:
1296:
1292:
1291:
1289:
1288:
1283:
1277:
1275:
1269:
1268:
1266:
1265:
1260:
1255:
1249:
1247:
1241:
1240:
1238:
1237:
1231:
1229:
1223:
1222:
1220:
1219:
1214:
1209:
1204:
1198:
1196:
1190:
1189:
1187:
1186:
1178:
1173:
1168:
1163:
1158:
1153:
1148:
1143:
1138:
1133:
1128:
1123:
1118:
1113:
1108:
1103:
1098:
1092:
1090:
1084:
1083:
1081:
1080:
1075:
1070:
1065:
1060:
1055:
1050:
1045:
1040:
1035:
1030:
1025:
1020:
1015:
1010:
1005:
1000:
995:
990:
985:
980:
975:
970:
965:
960:
955:
950:
945:
940:
934:
932:
926:
925:
923:
922:
917:
912:
907:
902:
896:
894:
888:
887:
885:
884:
879:
874:
869:
864:
859:
854:
849:
844:
839:
834:
829:
824:
819:
814:
809:
804:
799:
794:
789:
784:
779:
769:
767:
761:
760:
758:
757:
752:
747:
742:
737:
732:
727:
722:
717:
712:
707:
702:
697:
692:
687:
682:
677:
672:
667:
662:
656:
654:
648:
647:
645:
644:
639:
634:
628:
626:
620:
619:
617:
616:
610:
608:
602:
601:
599:
598:
592:
590:
584:
583:
581:
580:
575:
570:
564:
562:
556:
555:
553:
552:
547:
542:
537:
532:
527:
522:
521:
520:
515:
510:
505:
500:
495:
484:
482:
476:
475:
473:
472:
466:
463:
462:
459:Web frameworks
457:
455:
454:
447:
440:
432:
424:
423:
418:"LCHH vs. MVC"
409:
382:
381:
379:
376:
375:
374:
368:
367:
351:
348:
342:
341:
339:
336:
307:
304:
292:
289:
272:
269:
249:
248:
235:
231:
230:
225:
219:
218:
217:Cross Platform
215:
209:
208:
199:
195:
194:
191:
190:
177:
175:
173:Stable release
169:
168:
165:
164:
151:
147:
146:
141:
135:
134:
117:
116:
31:
29:
22:
15:
13:
10:
9:
6:
4:
3:
2:
1409:
1398:
1395:
1393:
1390:
1388:
1385:
1383:
1380:
1379:
1377:
1361:
1357:
1354:
1351:
1347:
1343:
1340:
1337:
1333:
1330:
1327:
1323:
1320:
1317:
1313:
1310:
1307:
1303:
1300:
1299:
1297:
1293:
1287:
1284:
1282:
1279:
1278:
1276:
1274:
1270:
1264:
1261:
1259:
1256:
1254:
1251:
1250:
1248:
1246:
1242:
1236:
1233:
1232:
1230:
1228:
1224:
1218:
1215:
1213:
1212:Ruby on Rails
1210:
1208:
1205:
1203:
1200:
1199:
1197:
1195:
1191:
1184:
1183:
1179:
1177:
1174:
1172:
1169:
1167:
1164:
1162:
1159:
1157:
1154:
1152:
1149:
1147:
1144:
1142:
1139:
1137:
1134:
1132:
1129:
1127:
1124:
1122:
1119:
1117:
1114:
1112:
1109:
1107:
1104:
1102:
1099:
1097:
1094:
1093:
1091:
1089:
1085:
1079:
1076:
1074:
1071:
1069:
1066:
1064:
1061:
1059:
1056:
1054:
1051:
1049:
1046:
1044:
1041:
1039:
1036:
1034:
1031:
1029:
1026:
1024:
1021:
1019:
1016:
1014:
1011:
1009:
1006:
1004:
1001:
999:
996:
994:
991:
989:
986:
984:
981:
979:
976:
974:
971:
969:
966:
964:
961:
959:
956:
954:
951:
949:
946:
944:
941:
939:
936:
935:
933:
931:
927:
921:
918:
916:
913:
911:
908:
906:
903:
901:
898:
897:
895:
893:
889:
883:
880:
878:
875:
873:
870:
868:
865:
863:
860:
858:
855:
853:
850:
848:
845:
843:
840:
838:
835:
833:
830:
828:
825:
823:
820:
818:
815:
813:
810:
808:
805:
803:
800:
798:
795:
793:
790:
788:
785:
783:
780:
778:
774:
771:
770:
768:
766:
762:
756:
753:
751:
748:
746:
743:
741:
738:
736:
733:
731:
728:
726:
723:
721:
718:
716:
713:
711:
708:
706:
703:
701:
698:
696:
693:
691:
688:
686:
683:
681:
678:
676:
673:
671:
668:
666:
663:
661:
658:
657:
655:
653:
649:
643:
640:
638:
635:
633:
630:
629:
627:
625:
621:
615:
612:
611:
609:
607:
603:
597:
594:
593:
591:
589:
585:
579:
576:
574:
571:
569:
566:
565:
563:
561:
557:
551:
548:
546:
543:
541:
538:
536:
533:
531:
528:
526:
523:
519:
516:
514:
511:
509:
506:
504:
501:
499:
496:
494:
491:
490:
489:
486:
485:
483:
481:
477:
471:
468:
467:
464:
460:
453:
448:
446:
441:
439:
434:
433:
430:
419:
413:
410:
397:
393:
387:
384:
377:
373:
370:
369:
365:
354:
349:
337:
335:
331:
329:
325:
321:
317:
313:
305:
303:
300:
296:
291:Compatibility
290:
288:
285:
281:
277:
270:
268:
266:
262:
259:
255:
246:
236:
232:
229:
226:
224:
220:
216:
214:
210:
207:
203:
200:
196:
192:
176:
174:
170:
166:
152:
148:
145:
142:
140:
136:
132:
127:
121:
113:
110:
102:
99:February 2024
91:
88:
84:
81:
77:
74:
70:
67:
63:
60: –
59:
55:
54:Find sources:
48:
44:
38:
37:
32:This article
30:
26:
21:
20:
1180:
1053:Silverstripe
977:
867:Sencha Touch
792:Dojo Toolkit
503:Dynamic Data
412:
400:. Retrieved
386:
332:
309:
306:Architecture
301:
297:
294:
286:
282:
278:
274:
253:
252:
139:Developer(s)
120:
105:
96:
86:
79:
72:
65:
53:
41:Please help
36:verification
33:
1043:ProcessWire
943:CodeIgniter
915:Mojolicious
822:Knockout.js
782:Backbone.js
606:Common Lisp
402:February 2,
258:open-source
228:BSD License
1376:Categories
1346:JavaScript
1342:SproutCore
1166:TurboGears
1023:PHP-Fusion
953:eZ Publish
872:SproutCore
802:Express.js
765:JavaScript
588:ColdFusion
550:WebSharper
470:Comparison
378:References
206:JavaScript
198:Written in
185:2020-05-17
160:2008-11-20
69:newspapers
1273:Smalltalk
1096:BlueBream
1068:WordPress
978:Gyroscope
852:Prototype
777:AngularJS
750:WaveMaker
518:Web Forms
254:Gyroscope
241:.antradar
1281:AIDA/Web
1263:Scalatra
1106:CubicWeb
1101:CherryPy
1028:PHP-Nuke
958:Fat-Free
900:Catalyst
832:MooTools
797:Ember.js
730:Tapestry
680:JHipster
675:ICEfaces
540:MonoRail
396:Antradar
350:See also
213:Platform
144:Antradar
1332:Phoenix
1322:OpenACS
1286:Seaside
1217:Sinatra
1207:Padrino
1161:Tornado
1151:Quixote
1146:Pyramid
1116:FastAPI
1058:Symfony
1033:Pop PHP
1018:Phalcon
1008:Midgard
998:Laravel
993:Laminas
988:Joomla!
968:FuelPHP
938:CakePHP
910:Maypole
847:OpenUI5
842:Node.js
837:Next.js
787:Closure
773:Angular
720:Stripes
690:Mojarra
660:AppFuse
632:Servant
624:Haskell
614:CL-HTTP
545:Umbraco
488:ASP.NET
234:Website
223:License
183: (
158: (
83:scholar
1360:Erlang
1336:Elixir
1316:Groovy
1312:Grails
1306:PL/SQL
1235:Rocket
1176:Zope 2
1171:web2py
1156:TACTIC
1141:Pylons
1111:Django
1088:Python
948:Drupal
920:WebGUI
905:Dancer
882:Vue.js
877:Svelte
827:Meteor
817:jQuery
807:Ext JS
745:Wicket
740:Vert.x
735:Vaadin
725:Struts
715:Spring
665:Grails
573:Drogon
568:CppCMS
525:Blazor
256:is an
85:
78:
71:
64:
56:
1245:Scala
1131:Nevow
1121:Flask
1073:XOOPS
1063:TYPO3
1048:Qcodo
1038:PRADO
983:Horde
862:Remix
857:React
710:Sling
642:Yesod
513:Razor
90:JSTOR
76:books
1356:Yaws
1350:Ruby
1258:Play
1253:Lift
1227:Rust
1202:Merb
1194:Ruby
1182:more
1136:Pyjs
1126:Grok
1013:MODX
973:Grav
963:Flow
892:Perl
812:htmx
705:Seam
695:Play
652:Java
637:Snap
498:AJAX
493:Core
480:.NET
404:2016
324:AJAX
322:(or
312:LCHH
243:.com
204:and
62:news
1326:Tcl
1185:...
1078:Yii
1003:li₃
930:PHP
685:JWt
670:GWT
560:C++
535:BFC
530:DNN
508:MVC
328:DOM
316:MVC
261:PHP
239:www
202:PHP
45:by
1378::
755:ZK
578:Wt
394:.
1362:)
1358:(
1352:)
1348:-
1344:(
1338:)
1334:(
1328:)
1324:(
1318:)
1314:(
1308:)
1304:(
775:/
451:e
444:t
437:v
406:.
187:)
162:)
112:)
106:(
101:)
97:(
87:·
80:·
73:·
66:·
39:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.